af6d61c8a1f437fd478130ca9d9ca2c4cf877265
Replace FL Studio binary .flp output with REAPER text-based .rpp output using the rpp Python library (Perlence/rpp). - Add core/schema.py: DAW-agnostic data types (SongDefinition, TrackDef, ClipDef, MidiNote, PluginDef) - Add reaper_builder/: RPP file generation via rpp.Element + headless render via reaper.exe CLI - Add composer/converters.py: bridge rhythm.py/melodic.py note dicts to core.schema MidiNote objects - Rewrite scripts/compose.py: real generator pipeline with --render flag - Delete src/flp_builder/, src/scanner/, mcp/, flstudio-mcp/, old scripts - Add 40 passing tests (schema, builder, converters, compose, render)
FL Control — Reggaeton Production System
Python system for generating complete reggaeton .flp projects for FL Studio from the command line, using intelligent sample selection and algorithmic composition.
Features
- Forensic Sample Analyzer — 4-layer audio analysis (signal, perceptual, musical, timbre) using aubio
- Intelligent Sample Selector — scores samples by key compatibility (circle of fifths), BPM proximity, and character
- Melodic Generators — reggaeton-idiomatic patterns: bass tresillo, melodic hooks, chord blocks, sustained pads
- FLP Builder — assembles valid FL Studio project files from a JSON song definition
- MCP Server — 28-tool Model Context Protocol server for AI-assisted production
Quick Start
pip install -r requirements.txt
# Analyze your sample library
1_ANALIZAR.bat # or: python src/analyzer/__init__.py
# Compose a track
python scripts/compose_track.py --key Am --bpm 95 --bars 8 --output output/track.flp
# or double-click:
COMPONER.bat
Project Structure
fl_control/
├── src/
│ ├── analyzer/ # Forensic audio feature extraction
│ ├── composer/ # Pattern generators (rhythm + melodic)
│ ├── flp_builder/ # FL Studio .flp binary assembly
│ └── selector/ # Intelligent sample scoring & selection
├── mcp/ # MCP server (28 tools for AI integration)
├── scripts/ # CLI entry points
├── knowledge/ # Musical domain knowledge (progressions, templates)
├── data/ # Generated indexes (gitignored)
├── .sdd/ # Spec-Driven Development artifacts
└── COMPONER.bat # Quick-compose launcher
System Requirements
- Python 3.10+
- FL Studio (for opening generated
.flpfiles) - ~4GB disk space for sample library (not included)
Workflow
- Drop your sample library into
librerias/ - Run
1_ANALIZAR.batto build the sample index - Run
COMPONER.batto generate a track
Architecture
The system uses a JSON SongDefinition as the single source of truth decoupling composition logic from FLP binary rendering. See .sdd/ for full technical specs and design documents.
Languages
Python
100%