FL Studio Python scripting for MIDI controller development, piano roll manipulation, Edison audio editing, workflow automation, and FLP file parsing with PyFLP. Use for programmatic configuration, device customization, MIDI transport, macros, and save file manipulation. Covers all 427+ API functions across 14 MIDI scripting modules plus piano roll, Edison, and PyFLP contexts.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install flstudio-scripting或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install flstudio-scripting⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/flstudio-scripting/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: flstudio-scripting description: FL Studio Python scripting for MIDI controller development, piano roll manipulation, Edison audio editing, workflow automation, and FLP file parsing with PyFLP. Use for programmatic configuration, device customization, MIDI transport, macros, and save file manipulation. Covers all 427+ API functions across 14 MIDI scripting modules plus piano roll, Edison, and PyFLP contexts. ---
Complete reference for FL Studio's Python API: MIDI controller scripting (14 modules, 427+ functions), piano roll note manipulation, Edison audio editing, and FLP file parsing with PyFLP.
import general
print(f"API Version: {general.getVersion()}")
Place scripts in Shared\Python\User Scripts folder.
---
Purpose: Control FL Studio through hardware MIDI controllers and send feedback to devices. Runs: Continuously while FL Studio is open. Available modules: transport, mixer, channels, arrangement, patterns, playlist, device, ui, general, plugins, screen, launchMapPages, utils, callbacks
Entry points:
def OnInit():
"""Called when script starts."""
pass
def OnDeInit():
"""Called when script stops."""
pass
def OnMidiMsg(msg):
"""Called for incoming MIDI messages."""
pass
def OnControlChange(msg):
"""Called for CC messages."""
pass
def OnNoteOn(msg):
"""Called for note-on messages."""
pass
def OnRefresh(flags):
"""Called when FL Studio state changes."""
pass
Purpose: Manipulate notes and markers in the piano roll editor. Runs: Once when user invokes through Scripts menu. Available modules: flpianoroll, enveditor
import flpianoroll
score = flpianoroll.score
for note in score.notes:
note.velocity = 0.8 # Set all velocities to 80%
Purpose: Edit and process audio samples in Edison. Runs: Once within Edison's context. Available modules: enveditor
---
Navigate to the appropriate reference file based on what you need to control. Read these files ONLY when you need specific API signatures.
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | transport | 20 | Play, stop, record, position, tempo, looping | api-transport.md | | mixer | 69 | Track volume/pan/mute/solo, EQ, routing, effects | api-mixer.md | | channels | 48 | Channel rack, grid bits, step sequencer, notes | api-channels.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | arrangement + patterns | 9 + 25 | Markers, time, pattern control, groups | api-arrangement-patterns.md | | playlist | 41 | Playlist tracks, live mode, performance, blocks | api-playlist.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | device | 34 | MIDI I/O, sysex, dispatch, hardware refresh | api-device.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | ui + general | 71 + 24 | Windows, navigation, undo/redo, version, snap | api-ui-general.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | plugins | 13 | Plugin parameters, presets, names, colors | api-plugins.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | screen + launchMapPages | 9 + 12 | AKAI Fire screen, launchpad page management | api-screen-launchmap.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | utils + constants | 21 | Color conversion, math, note names, MIDI tables | api-utils-constants.md |
| Module | Functions | What It Controls | Reference | |--------|-----------|-----------------|-----------| | callbacks | 26 | All callback functions, FlMidiMsg class, event flow | api-callbacks.md |
---
Note, Marker, ScriptDialog, score classes for piano roll manipulation plus Edison enveditor utilities. See piano-roll-edison.md
External library for reading/writing .flp project files without FL Studio running. Batch processing, analysis, automated generation. See pyflp.md
---
# name=My Controller
# url=https://example.com
import device
import mixer
import transport
def OnInit():
if device.isAssigned():
print(f"Connected: {device.getName()}")
def OnDeInit():
print("Script shut down")
def OnControlChange(msg):
if msg.data1 == 7: # Volume CC
mixer.setTrackVolume(mixer.trackNumber(), msg.data2 / 127.0)
msg.handled = True
def OnNoteOn(msg):
track = msg.data1 % 8
mixer.setActiveTrack(track)
msg.handled = True
def OnRefresh(flags):
pass # Update hardware display here
def OnInit():
if not device.isAssigned():
print("No output device linked!")
return
# Safe to use device.midiOutMsg() etc.
def OnControlChange(msg):
if msg.data1 == 7:
mixer.setTrackVolume(0, msg.data2 / 127.0)
msg.handled = True # Prevent FL Studio from also processing this
def OnRefresh(flags):
if device.isAssigned():
# Update volume fader LED
vol = int(mixer.getTrackVolume(0) * 127)
device.midiOutMsg(0xB0, 0, 7, vol)
For complete examples (MIDI learn, scale enforcer, LED feedback, batch quantization, sysex handling, performance monitoring, automation engine, debugging): See examples-patterns.md
---
device.directFeedback() for controller echodevice.isAssigned() before device functions---
device.isAssigned() returns TrueShared\Python\User Scripts folderflpianoroll.score.notes...
安装 FL Studio Scripting 后,可以对 AI 说这些话来触发它
Help me get started with FL Studio Scripting
Explains what FL Studio Scripting does, walks through the setup, and runs a quick demo based on your current project
Use FL Studio Scripting to fL Studio Python scripting for MIDI controller development, piano r...
Invokes FL Studio Scripting with the right parameters and returns the result directly in the conversation
What can I do with FL Studio Scripting in my documents & notes workflow?
Lists the top use cases for FL Studio Scripting, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/flstudio-scripting/ 目录(个人级,所有项目可用),或 .claude/skills/flstudio-scripting/(项目级)。重启 AI 客户端后,用 /flstudio-scripting 主动调用,或让 AI 根据上下文自动发现并使用。
FL Studio Scripting 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
FL Studio Scripting 可免费安装使用。请查阅仓库了解许可证信息。
FL Studio Python scripting for MIDI controller development, piano roll manipulation, Edison audio editing, workflow automation, and FLP file parsing with PyFLP. Use for programmatic configuration, device customization, MIDI transport, macros, and save file manipulation. Covers all 427+ API functions across 14 MIDI scripting modules plus piano roll, Edison, and PyFLP contexts.
Automate my documents & notes tasks using FL Studio Scripting
Identifies repetitive steps in your workflow and sets up FL Studio Scripting to handle them automatically
FL Studio Scripting 属于「Documents & Notes」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。