# 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 ```bash 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 `.flp` files) - ~4GB disk space for sample library (not included) ## Workflow 1. Drop your sample library into `librerias/` 2. Run `1_ANALIZAR.bat` to build the sample index 3. Run `COMPONER.bat` to 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.