major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
145 lines (115 loc) • 8.1 kB
Markdown
name: fl-studio
description: "Script FL Studio MIDI controls, configure Patcher and mixer workflows, and troubleshoot automated rendering."
category: music
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["fl-studio", "fl-midi-scripting", "fl-python", "flp-projects", "headless-rendering", "beat-making", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Image-Line FL Studio Beat Making & Production AI Skill Guide (Claude)
## Overview & Engine Architecture
Image-Line FL Studio is a pattern-based digital audio workstation (DAW) renowned for its intuitive **Step Sequencer & Channel Rack**, advanced **Piano Roll (with slide/portamento notes, ghost channels, and micro-timing)**, modular **Patcher** routing environment, 125-insert **Mixer**, and native **Python MIDI Controller Scripting API**. FL Studio supports headless batch project rendering via the **`FL64.exe` CLI**, AI Stem Separation, and flexible audio warping. Claude operates as a Principal Audio Systems Architect and Beat Production Specialist, specializing in **FL Studio Python MIDI Scripting**, **headless command-line export pipelines**, **underrun & ASIO latency remediation**, and **Patcher signal routing**.
### FL Studio Core Architecture & Python Scripting Stack
```
┌─────────────────────────────────────────────────────────────┐
│ FL Studio Engine Architecture │
│ │
│ Pattern Sequencing & Composition Tier │
│ ├── Channel Rack & Step Sequencer (64-Step Grid, Samples) │
│ ├── Piano Roll (Slide Notes, Strummer, Scale Highlighting) │
│ └── Playlist Timeline (Pattern Clips, Audio Tracks, Autom.)│
│ │
│ Mixing & Modular DSP Layer │
│ ├── 125 Insert Channel Mixer (Pre/Post FX, Sidechain Busses│
│ ├── Patcher Modular Environment (Custom Instrument/FX Chains│
│ └── 64-bit Native Synthesizers (Sytrus, Harmor, FLEX, GMS) │
│ │
│ Automation & Headless Execution Core │
│ ├── Python MIDI Scripting Engine (`device`, `mixer`, `transport`)│
│ └── Headless Command-Line Exporter (`FL64.exe /R /E...`) │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **FL Studio Python MIDI Scripting**: Author modular hardware controller scripts using FL Studio's built-in Python API (`import transport`, `import mixer`, `import channels`, `import patterns`).
2. **Headless Batch Rendering Automation**: Construct automated command-line rendering batch scripts invoking `FL64.exe /R /E"output.wav" /F"WAV" "project.flp"`.
3. **Buffer Underrun & DSP Optimization**: Remediate audio crackles and CPU spikes by configuring "Smart Disable" for all plugins, enabling multithreaded generator/effect processing, and optimizing ASIO buffer sizes.
4. **Patcher Modular Routing**: Design custom Patcher presets implementing multi-band frequency splitting, mid-side equalization, and parallel saturation.
## Production Python Automation: FL Studio Custom MIDI Controller Script (`device_CustomController.py`)
Save this file as `device_CustomController.py` inside `%USERPROFILE%\Documents\Image-Line\FL Studio\Settings\Hardware\CustomController\`:
```python
# name=Custom Hardware Controller
# url=https://github.com/developer/fl-custom-controller
# ==============================================================================
# FL Studio Python MIDI Script: Custom Hardware Controller Driver
# Maps Hardware Transport CCs and Mixer Track 1 Volume/Mute to FL Studio APIs.
# ==============================================================================
import transport
import mixer
import general
import device
# MIDI CC Definitions
CC_PLAY = 114
CC_STOP = 115
CC_RECORD = 116
CC_FADER_TRACK1 = 7
CC_MUTE_TRACK1 = 16
def OnInit():
print("--- [FL STUDIO CUSTOM MIDI SCRIPT INITIALIZED] ---")
print(f"Device Name: {device.getName()}")
print(f"Device Port: {device.getPortNumber()}")
def OnDeInit():
print("Custom MIDI Script De-initialized.")
def OnMidiMsg(event):
event.handled = False
# Process Control Change (CC) Messages (Status 0xB0 = Channel 1 CC)
if event.status == 0xB0 or event.status == 176:
# 1. Transport Controls
if event.data1 == CC_PLAY and event.data2 > 0:
transport.start()
event.handled = True
elif event.data1 == CC_STOP and event.data2 > 0:
transport.stop()
event.handled = True
elif event.data1 == CC_RECORD and event.data2 > 0:
transport.record()
event.handled = True
# 2. Track 1 Volume Control (Normalize MIDI 0-127 to 0.0-1.0)
elif event.data1 == CC_FADER_TRACK1:
vol_val = event.data2 / 127.0
mixer.setTrackVolume(1, vol_val)
event.handled = True
# 3. Track 1 Mute Toggle
elif event.data1 == CC_MUTE_TRACK1 and event.data2 > 0:
mixer.muteTrack(1)
event.handled = True
if event.handled:
print(f"Handled CC {event.data1} with Value {event.data2}")
```
---
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Audio Underruns / Crackling During Playback** | Heavy VST3 plugins idling on CPU threads or ASIO buffer size configured $<128\text{ samples}$. | 1. In *Tools $\rightarrow$ Macros*, click **Switch smart disable for all plugins**.<br>2. In Audio Settings, enable **Multithreaded generator processing** and **Multithreaded mixer processing**.<br>3. Increase buffer to $256\text{ or }512\text{ samples}$. |
| **Third-Party VST3 Window Blurry or Black** | Display scaling mismatch between FL Studio and plugin GUI framework. | In Wrapper Settings (gear icon on plugin) $\rightarrow$ **Processing**, enable **Make bridged** or set **DPI aware**. |
| **Click / Pop at Beginning or End of Audio Clip** | Audio clip boundary cut at non-zero-crossing without crossfading. | Double-click audio clip in Channel Rack $\rightarrow$ In Time Stretching / Declicking menu, set declicking mode to **Transient (no bleeding)** or **Generic (bleeding)**. |
| **Headless CLI Render Fails: `FL64.exe /R /E...`** | Output path enclosed in invalid quotes or FL Studio license not activated on the machine. | Verify output directory exists and command syntax: `FL64.exe /R /E"C:\Output\track.wav" /F"WAV" "C:\Projects\track.flp"`. |
## Command Line Syntax & Headless Export Recipes
```bash
# 1. Headless Batch Export of FL Studio Project to 24-bit 44.1kHz WAV
"C:\Program Files\Image-Line\FL Studio 2024\FL64.exe" /R /E"C:\Exports\BeatMaster.wav" /F"WAV" /b24 /r44100 "C:\Projects\BeatMaster.flp"
# 2. Headless Export to MP3 (320kbps)
"C:\Program Files\Image-Line\FL Studio 2024\FL64.exe" /R /E"C:\Exports\BeatMaster.mp3" /F"MP3" /b320 "C:\Projects\BeatMaster.flp"
```
### Essential File Locations
- **User Data Root**: `%USERPROFILE%\Documents\Image-Line\FL Studio\` (Windows) or `~/Documents/Image-Line/FL Studio/` (macOS)
- **MIDI Controller Scripts**: `...\FL Studio\Settings\Hardware\`
- **Project Files**: `*.flp`
## Agent Operational Directive
> **MANDATORY**: When projects encounter audio underrun crackles during playback, always execute "Switch smart disable for all plugins" via Tools $\rightarrow$ Macros before increasing audio buffer latency.