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.
121 lines (89 loc) • 6.88 kB
Markdown
title: "Image-Line FL Studio Beat Making & Production AI Skill Guide (GPT & Codex)"
description: "Comprehensive operational skill specification for OpenAI GPT and Codex to automate, script, troubleshoot, and optimize FL Studio, Python MIDI Scripting API (device/mixer/transport), PyFLP parsing, and headless batch export scripts."
category: "Beat Making & Electronic Music Production"
tags: ["fl-studio", "fl-python-midi", "pyflp", "headless-rendering-cli", "gpt-codex", "midi-scripting"]
# Image-Line FL Studio Beat Making & Production AI Skill Guide (GPT & Codex)
## Overview & Engine Architecture
FL Studio provides developer extensibility through its embedded **Python MIDI Controller Scripting runtime** and scriptable **Headless Command-Line Exporter**. GPT/Codex acts as a Principal Audio Software Engineer and FL Studio Automation Developer, delivering **complete Python MIDI script device drivers**, **PyFLP project parsing and generation pipelines**, **automated headless stem export workflows**, and **custom MIDI chord generator tools**.
### Developer Architecture & Python Scripting Stack
```
┌─────────────────────────────────────────────────────────────┐
│ FL Studio Developer Platform │
│ │
│ Python MIDI Scripting Subsystems │
│ ├── `device` Module (Port Assignment, Handshake, SysEx) │
│ ├── `transport` Module (Play, Stop, Record, Song/Pattern) │
│ ├── `mixer` Module (Track Volume, Pan, Mute, Solo, FX Peak)│
│ ├── `channels` Module (Grid Step States, Pitch, Volume) │
│ └── `plugins` Module (VST3 / Native Synth Parameter Hooks) │
│ │
│ External Automation & Batch Pipeline │
│ ├── Headless Batch Export Engine (`FL64.exe /R /E...`) │
│ └── `pyflp` Python Library (Automated Project Serialization│
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **Python MIDI Scripting Development**: Author modular device drivers implementing bidirectional LED feedback, jog wheel timeline scrubbing, and motorized fader synchronization.
2. **`pyflp` Project Manipulation**: Write Python scripts using `pyflp` to inspect, modify, and generate `.flp` project arrangements programmatically.
3. **Headless Batch Render Pipeline**: Construct bash and PowerShell scripts orchestrating automated renders of entire albums with consistent naming and format flags.
4. **SysEx Hardware Protocol Integration**: Implement system exclusive (SysEx) messaging to initialize connected MIDI controllers (Akai Fire, Novation FLkey).
## Production Python Automation: Automated Batch Project Exporter Script (PowerShell)
Save this script as `batch_render_flp.ps1` to render all FL Studio project files in a folder to MP3 and WAV headlessly:
```powershell
# ==============================================================================
# PowerShell Script: FL Studio Headless Batch Project Exporter
# Recursively renders all .flp project files in a directory to WAV and MP3.
# ==============================================================================
param (
[string]$SourceDir = "C:\Projects\Beats",
[string]$OutputDir = "C:\Projects\Exports"
)
$FL_EXE = "C:\Program Files\Image-Line\FL Studio 2024\FL64.exe"
if (-not (Test-Path $FL_EXE)) {
Write-Error "FL Studio executable not found at: $FL_EXE"
exit 1
}
New-Item -ItemType Directory -Force -Path $OutputDir | Out-Null
$projects = Get-ChildItem -Path $SourceDir -Filter "*.flp"
Write-Host "--- [STARTING FL STUDIO HEADLESS BATCH EXPORT: $($projects.Count) PROJECTS] ---" -ForegroundColor Cyan
foreach ($proj in $projects) {
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($proj.Name)
$wavOut = Join-Path $OutputDir "$baseName.wav"
$mp3Out = Join-Path $OutputDir "$baseName.mp3"
Write-Host "Rendering: $($proj.Name)..." -ForegroundColor Yellow
# 1. Render 24-bit 44.1kHz WAV
Write-Host " • Exporting WAV: $wavOut"
& $FL_EXE /R /E"$wavOut" /F"WAV" /b24 /r44100 "$($proj.FullName)" | Out-Null
# 2. Render 320kbps MP3
Write-Host " • Exporting MP3: $mp3Out"
& $FL_EXE /R /E"$mp3Out" /F"MP3" /b320 "$($proj.FullName)" | Out-Null
Write-Host " ✅ Completed: $baseName" -ForegroundColor Green
}
Write-Host "`nAll projects rendered successfully to: $OutputDir" -ForegroundColor Cyan
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **`device.getName()` Returns Empty String** | Script invoked during initialization before hardware USB handshake completed. | Wrap device initialization calls inside `OnInit()` and check `device.isAssigned()`. |
| **`mixer.setTrackVolume` Has No Effect** | Track index passed out of range ($0-125$) or mixer channel was locked. | Ensure track index satisfies $0 \le \text{index} \le 125$ ($0$ is Master channel). |
| **PowerShell Headless Render Freezes** | FL Studio modal dialog (*e.g. Missing Sample Dialog*) blocked process execution. | In FL Studio Settings $\rightarrow$ File Settings, ensure **Search folder for missing samples** is enabled or consolidate project assets first via *File $\rightarrow$ Export $\rightarrow$ Zipped loop package*. |
| **`pyflp` Fails to Parse `.flp` File** | Project saved in a newer, un-supported FL Studio format version. | Update `pyflp` via `pip install --upgrade pyflp`. |
## Command Line Syntax & Batch Processing
```bash
# Render FL Studio Project Headlessly via Windows Command Line
"C:\Program Files\Image-Line\FL Studio 2024\FL64.exe" /R /E"C:\Exports\Track.wav" /F"WAV" "C:\Projects\Track.flp"
# Monitor FL Studio MIDI Script Console Output in Real-Time
# In FL Studio: Open Settings -> MIDI -> Enable 'Script output' window
```
### Essential File Locations
- **Hardware Script Directory**: `%USERPROFILE%\Documents\Image-Line\FL Studio\Settings\Hardware\`
- **FL Studio Binary**: `C:\Program Files\Image-Line\FL Studio 2024\FL64.exe`
## Agent Operational Directive
> **MANDATORY**: When building headless export pipelines for FL Studio, always consolidate project samples into Zipped Loop Packages (`.zip`) prior to batch rendering to prevent missing sample modal freezes.