You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Note on UI Refresh:** When the assistant applies EQ or plugin changes via `fl_apply_eq_intent`, the parameters take effect immediately in the audio engine. However, if the plugin window is currently open in FL Studio, the GUI may not visually update until the user clicks on it or reopens the window.
**Context**: When assigning many unrouted audio clips to free mixer tracks, the internal pagination/scanning mechanism (`_find_free_mixer_track` via `CMD_MIXER_GET_ROUTING_ALL`) stopped finding tracks after a limit (e.g. 18 tracks).
8
+
**Observation**: The user pointed out that FL Studio has a UI function to "assign to new mixer track". While the Python API lacks a single magic macro like `channels.assignToFreeMixerTrack(index)`, the API *does* provide `mixer.getFreeTrack()` to reliably get the next empty track without manually paginating the entire routing matrix.
9
+
**Tested Values**: `mixer.getFreeTrack()` vs manual scanning.
10
+
**Result**: Using manual scanning can fail if the mixer payload size or track count logic truncates empty tracks. The native `mixer.getFreeTrack()` (if available) or proper payload scanning should be used.
11
+
**Confidence Level**: docs_confirmed
12
+
**Source/Method**: Web Research (FL Studio API Stubs documentation and forum discussions) and User feedback.
13
+
**Open Questions**: Does `mixer.getFreeTrack()` return tracks beyond the currently visible/active block if the project only has 18 active tracks, or is `mixer.trackCount()` legitimately returning a lower number in this specific project?
14
+
**Next Recommended Action**: Refactor `_find_free_mixer_track` to use `mixer.getFreeTrack()` directly via a new bridge command `CMD_MIXER_GET_FREE_TRACK` instead of parsing all routing pages.
Applying high-pass filters using `fl_apply_eq_intent` sets the `Band 1 type` parameter to index 21. When reading back the parameters using `CMD_PLUGIN_GET_PARAMS`, we noticed that only a subset of parameters (e.g., indices 0 to ~10) were returned unless pagination was handled via `fetch_all_pages`.
9
+
10
+
Observation:
11
+
1.`CMD_PLUGIN_GET_PARAMS` limits the number of returned parameters per request. To see all parameters of an EQ (like band types, which sit at indices 21-27), the MCP client must fetch all pages.
12
+
2. When parameters like `Band 1 type` are set via `CMD_PLUGIN_SET_PARAM`, FL Studio does not always immediately trigger a repaint of the plugin's graphical UI if the window is currently open and focused.
13
+
14
+
Result:
15
+
The API successfully applies the EQ curve, but the user might report that the EQ did not change visually.
16
+
17
+
Confidence Level: `implementation_verified`
18
+
19
+
Source/Method:
20
+
Tested via direct TCP connection to the FL Studio MIDI bridge during the Guided Fix workflow. We sent parameter changes, read them back successfully using `fetch_all_pages`, but the user reported not seeing the visual change until they interacted with the plugin window.
21
+
22
+
Open Questions:
23
+
- Is there a way to force a UI repaint via the FL Studio Python API when parameters are changed?
24
+
25
+
Next Recommended Action:
26
+
- When applying EQ changes programmatically, the MCP assistant should inform the user that they may need to close/reopen the plugin window to see the graphical changes.
0 commit comments