Skip to content

Commit 8177a8f

Browse files
docs: update README to clarify fls-pilot naming transition and standardize documentation formatting.
1 parent b04cf18 commit 8177a8f

1 file changed

Lines changed: 47 additions & 23 deletions

File tree

README.md

Lines changed: 47 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# flstudio-mcp
22

3+
> Naming transition: This repository is moving toward the `fls-pilot` / `FL Studio Pilot` project identity.
4+
> The v2.x stable line intentionally keeps the existing `flstudio-mcp`, `fl-studio-mcp`, and `FLStudioMCP` package, command, and controller names for compatibility.
5+
> A full breaking rename is planned for the v3.x line.
6+
37
**Control FL Studio with any MCP-compatible LLM: AI mixing, composition, and mix diagnosis through natural language.**
48

59
![version](https://img.shields.io/badge/version-2.0.0-blue)
@@ -19,12 +23,13 @@
1923
flstudio-mcp is a Model Context Protocol (MCP) server that lets any MCP client (like Claude Desktop, ChatGPT, or Cursor) drive FL Studio 2025 directly — the mixer, plugins, piano roll, routing, and project — from plain-language requests. Ask for a mix diagnosis, a vocal chain, a chord progression in a particular scale, or a full arrangement, and the LLM assistant carries it out through FL's scripting API and a set of calibrated, safety-checked tools.
2024

2125
**Key upgrades in v2.0.0:**
26+
2227
- **Consolidated domain tools:** Dozens of single-purpose functions were folded into higher-level endpoints such as `fl_transport`, `fl_mixer`, `fl_channel`, `fl_effect`, and `fl_batch`. This reduces tool-selection noise and leaves more context for the assistant to reason about the project.
2328
- **Agent orientation resource:** Agents should start with `fl://agent-briefing` and `fl://status` for current tool selection, safety gates, and stop rules before live FL work.
2429
- **Knowledgebase-backed parameters:** API values, dB/Hz mappings, known limits, and safe ranges are captured in the local Knowledgebase so agents can prefer verified project evidence over guesses.
2530
- **Rollback-first writes:** Persistent FL Studio mutations route through the safety layer: scoped snapshot, smallest practical write, readback where supported, changelog entry, and rollback path. Grouped writes are stored as named rollback units.
2631

27-
## High-Level Tools (New in v2.0.0)
32+
## High-Level Tools
2833

2934
This release focuses on rollback-first FL Studio production tooling and a strict agent workflow. The tools below are the highest-value entry points for day-to-day use.
3035

@@ -47,6 +52,7 @@ Deep Audio Clip parameters such as Stretch Mode, Normalize state, and some sampl
4752
FL Studio's Python API is useful but has strict boundaries. This project combines safe controller calls, local file analysis, generated Piano Roll scripts, and a snapshot/rollback safety layer. The summary below explains what is automated and where FL Studio still requires manual action.
4853

4954
### Phase 1: Ideation & Composition (Notes & Audio)
55+
5056
- **Audio Analysis (`fl_analyze_audio`, `fl_extract_melody`)**
5157
- *The Limitation:* FL Studio's API cannot read or analyze audio files.
5258
- *How it works:* These tools read `.wav` or `.mp3` files directly from disk and analyze them with Python libraries such as CREPE when the optional accurate audio extras are installed.
@@ -55,27 +61,32 @@ FL Studio's Python API is useful but has strict boundaries. This project combine
5561
- *How it works:* The assistant generates a temporary `MCP_Apply` script. A background daemon triggers the armed script with a keyboard shortcut (`Cmd+Opt+Y` on macOS), causing FL Studio to write the notes to the selected Piano Roll target.
5662

5763
### Phase 2: Arrangement & Structure
64+
5865
- **Patterns & Playlist (`fl_pattern`, `fl_playlist`)**
5966
- *The Limitation:* Direct editing, splitting, or moving of Audio/MIDI clips in the playlist is blocked by the API.
6067
- *How it works:* The assistant manages supported structure such as pattern creation, pattern cloning where exposed, section markers, and track metadata through unified domain tools.
6168

6269
### Phase 3 & 4: Diagnosis & Preparation
70+
6371
- **Audio Clip Safe Defaults (`fl_inspect_audio_clips`)**
6472
- *The Limitation:* Deep Audio Clip features like "Stretch Pro" or the "Normalize" toggle are not exposed.
6573
- *How it works:* The tools can apply safe Channel Rack volume limits, check for free mixer tracks, and generate manual checklists for Stretch/Normalize states that the FL API cannot verify.
6674
- **Project Organizer (`fl_channel`, `fl_mixer`, `fl_apply_color_standard`)**
6775
- *Safety:* Renaming and coloring a large project uses scoped snapshots and named rollback units so supported changes can be audited and restored through the MCP safety layer.
6876

6977
### Phase 5: Signal Flow & Routing
78+
7079
- **Routing Tools (`fl_review_routing`, `fl_apply_bus_layout`, `fl_group_tracks`)**
7180
- *How it works:* Routing tools detect structural issues, propose bus layouts, and apply supported routing changes as named rollback units.
7281

7382
### Phase 6: Sound Design (The Strictest API Boundary)
83+
7484
- **Chain Planner & Presets (`fl_setup_chain`, `fl_suggest_preset`)**
7585
- *The Hard Limit:* It is technically impossible to load or insert a plugin via the FL Studio API.
7686
- *The workflow:* The assistant scans FL Studio plugin database and preset folders on disk, suggests chains from what it finds, and can configure parameters after the user manually loads the chosen plugin.
7787

7888
### Phase 7: Mixing & Dynamics
89+
7990
- **Mix Doctor (`fl_review_mix`, `fl_mix_watch_start`)**
8091
- *The Limitation:* A static "snapshot" of a song is useless because audio is dynamic.
8192
- *How it works:* During peak watch, the user plays the song while the tool polls live API peak meters and keeps running peak evidence for each track.
@@ -84,18 +95,18 @@ FL Studio's Python API is useful but has strict boundaries. This project combine
8495
- *How it works:* Before sending supported parameter changes to FL Studio, the assistant checks requested values against Knowledgebase conversion entries such as `kb_get_conversion` and sends normalized values within verified ranges.
8596

8697
### Phase 8: Export, Health & Safety
98+
8799
- **Project Health Checks (`fl_check_project_preflight`)**
88100
- *How it works:* Before a manual audio render, the assistant can run combined Mix Review, Routing Review, and cleanup checks to report export-readiness risks.
89101
- **Audio Export (`fl_export_midi`)**
90-
- *The Limitation:* The API cannot click "Render to WAV".
102+
- *The Limitation:* The API cannot click "Render to WAV".
91103
- *How it works:* The tools write standard `.mid` files directly to disk for arrangement exports. Audio bouncing remains manual.
92104
- **The Safety Layer (`fl_rollback_last_change`)**
93105
- *The Limitation:* FL Studio's native Undo (`Ctrl+Z`) is highly unreliable for API scripts.
94106
- *How it works:* The MCP safety layer stores scoped snapshots and changelog entries for supported writes. Calling rollback restores the affected supported state through the MCP rollback path.
95107

96108
The server exposes a comprehensive suite of tools across all these phases. For a user-facing workflow overview, full tool catalog, and precise command prompts, see the **[USER_GUIDE](docs/USER_GUIDE.md)**.
97109

98-
99110
## Maintained fork
100111

101112
This repository is a materially extended fork of
@@ -160,57 +171,63 @@ These are properties of FL Studio's scripting API, stated plainly:
160171

161172
### 1. Configure MIDI Ports
162173

163-
* **Windows**: Create two virtual MIDI ports in loopMIDI, named exactly `FLStudioMCP RX` and `FLStudioMCP TX`.
164-
* **macOS**:
174+
- **Windows**: Create two virtual MIDI ports in loopMIDI, named exactly `FLStudioMCP RX` and `FLStudioMCP TX`.
175+
- **macOS**:
165176
1. Open the **Audio MIDI Setup** app.
166177
2. Choose **Window > Show MIDI Studio** (or press `Cmd+8`).
167178
3. Double-click the **IAC Driver** icon.
168179
4. Tick the **Device is online** checkbox.
169180
5. Under **Ports** (or **Buses**), add/rename two ports to exactly:
170-
* `FLStudioMCP RX`
171-
* `FLStudioMCP TX`
181+
- `FLStudioMCP RX`
182+
- `FLStudioMCP TX`
172183
6. Click **Apply**.
173184

174185
### 2. Install the Controller Script & Server
175186

176-
#### Windows:
187+
#### Windows
188+
177189
```bat
178190
git clone https://github.com/thunderdew-dawn/flstudio-mcp
179191
cd flstudio-mcp
180192
scripts\install_windows.bat
181193
```
182194

183-
#### macOS:
195+
#### macOS
196+
184197
```bash
185198
git clone https://github.com/thunderdew-dawn/flstudio-mcp
186199
cd flstudio-mcp
187200
chmod +x scripts/install_macos.sh
188201
./scripts/install_macos.sh
189202
```
203+
190204
This script will copy the controller script, create a virtual environment (`.venv`), install the server inside it, and verify that the IAC Driver ports are online. It also pre-seeds the note-bridge script (`MCP_Apply.pyscript`) inside your FL Studio user data directory.
191205

192206
> [!IMPORTANT]
193207
> **macOS Accessibility Permissions**: Since the note-writing tool simulates keyboard shortcuts (`Cmd+Opt+Y`) via `pyautogui` to trigger script runs in FL Studio, the application executing the MCP server (e.g., your terminal, iTerm, Warp, or your MCP client app like Claude Desktop/ChatGPT) must be granted Accessibility permissions. Go to **System Settings > Privacy & Security > Accessibility** and ensure the app you are running is enabled.
194208
195209
For optional audio/melody analysis extras:
196-
* Windows: `pip install -e ".[audio,audio-accurate]"`
197-
* macOS: `.venv/bin/pip install -e ".[audio,audio-accurate]"`
210+
211+
- Windows: `pip install -e ".[audio,audio-accurate]"`
212+
- macOS: `.venv/bin/pip install -e ".[audio,audio-accurate]"`
198213

199214
### 3. Configure FL Studio (All Platforms)
200215

201216
1. Open FL Studio.
202217
2. Go to **Options > MIDI Settings**:
203-
* **Input list**: Click `FLStudioMCP RX`, tick **Enable**, set **Controller type** to `FLStudioMCP`, and set **Port** to `42`.
204-
* **Output list**: Click `FLStudioMCP TX`, tick **Enable**, and set **Port** to `42` (MUST match the input port).
218+
- **Input list**: Click `FLStudioMCP RX`, tick **Enable**, set **Controller type** to `FLStudioMCP`, and set **Port** to `42`.
219+
- **Output list**: Click `FLStudioMCP TX`, tick **Enable**, and set **Port** to `42` (MUST match the input port).
205220
3. Go to **View > Script output**. It should show `[FLStudioMCP] Ready`.
206221

207222
### 4. Connect to your MCP Client
208223

209224
#### Option A: Claude Desktop, Cursor, or other stdio clients
225+
210226
1. Start the MIDI bridge daemon (recommended so MIDI ports are held by a stable background process):
211-
* Windows: Run `fl-studio-mcp-daemon`
212-
* macOS: Run `.venv/bin/fl-studio-mcp-daemon`
227+
- Windows: Run `fl-studio-mcp-daemon`
228+
- macOS: Run `.venv/bin/fl-studio-mcp-daemon`
213229
2. Configure your client (e.g., Claude Desktop). Add this to your configuration file (Windows: `%APPDATA%\Claude\claude_desktop_config.json`, macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):
230+
214231
```json
215232
{
216233
"mcpServers": {
@@ -223,22 +240,25 @@ For optional audio/melody analysis extras:
223240
}
224241
}
225242
```
243+
226244
*(Note: On Windows, use `fl-studio-mcp` for the command instead of the `.venv` path if installed globally.)*
227245

228246
#### Option B: ChatGPT Desktop (SSE)
247+
229248
ChatGPT Desktop does not support local stdio subprocesses and requires a remote/SSE connection:
249+
230250
1. Start the MIDI bridge daemon in a terminal:
231-
* Windows: `fl-studio-mcp-daemon`
232-
* macOS: `.venv/bin/fl-studio-mcp-daemon`
251+
- Windows: `fl-studio-mcp-daemon`
252+
- macOS: `.venv/bin/fl-studio-mcp-daemon`
233253
2. Start the MCP server with the SSE transport in another terminal:
234-
* Windows: `set FLSTUDIO_MCP_TRANSPORT=tcp && fl-studio-mcp --sse --port 8080`
235-
* macOS: `export FLSTUDIO_MCP_TRANSPORT=tcp && .venv/bin/fl-studio-mcp --sse --port 8080`
254+
- Windows: `set FLSTUDIO_MCP_TRANSPORT=tcp && fl-studio-mcp --sse --port 8080`
255+
- macOS: `export FLSTUDIO_MCP_TRANSPORT=tcp && .venv/bin/fl-studio-mcp --sse --port 8080`
236256
3. Enable Developer Mode in ChatGPT Desktop (Settings > Developer).
237257
4. Go to **Settings > Developer > MCP**, click **Add New Server**:
238-
* **Name**: `FL Studio`
239-
* **Type**: `sse`
240-
* **URL**: `http://localhost:8080/sse`
241-
* Click **Save**.
258+
- **Name**: `FL Studio`
259+
- **Type**: `sse`
260+
- **URL**: `http://localhost:8080/sse`
261+
- Click **Save**.
242262

243263
### 5. Arm the Note Bridge (Per Session)
244264

@@ -281,6 +301,10 @@ Design notes and findings are in [`docs/`](docs/).
281301

282302
MIT — see [LICENSE](LICENSE).
283303

304+
# FL Studio Pilot / fls-pilot
305+
306+
> v2.x compatibility note: package names, commands, MIDI ports, and controller identifiers still use `flstudio-mcp` / `fl-studio-mcp` / `FLStudioMCP`.
307+
284308
## Status & contributing
285309

286310
Stable — the public 2.0.0 release. Fully compatible with Windows and macOS.

0 commit comments

Comments
 (0)