renato97
33bb08270d
fix: musical content — 808 timing, chord voicings, melody range, pad arpeggiation, Ozone paths
...
- 808 bass: fixed note positions to beat 1.0 per bar (i-iv-i-V, 1.5 beat duration)
- Chords: 4-note 7th voicings (Am7, F7, C7, G7) instead of 2-note intervals
- Lead: constrained to 8-semitone range, pentatonic scale
- Pad: arpeggiated eighth-notes instead of static 2-note drones
- Ozone 12: fixed .vst3 filename paths in Calibrator
- Delta-encoding: fixed cumulative timing drift in _build_midi_source() with CC events
298/298 tests pass.
2026-05-04 01:30:19 -03:00
renato97
e99fa231dd
fix: sidechain CC11 — pass kick_cache to build_bass_track + absolute position projection
...
Root cause: build_bass_track() never received the kick_cache in main().
Second issue: kick times were WAV-relative (0-12 beats) but bass expects
absolute positions (16+ beats). Added loop-duration projection to convert
relative → absolute positions across clip duration.
285 CC11 events now generated in output. 302/302 tests pass.
2026-05-04 00:26:03 -03:00
renato97
014e636889
feat: professional reggaeton production engine — 7 SDD changes, 302 tests
...
- section-energy: track activity matrix + volume/velocity multipliers per section
- smart-chords: ChordEngine with voice leading, inversions, 4 emotion modes
- hook-melody: melody engine with hook/stabs/smooth styles, call-and-response
- mix-calibration: Calibrator module (LUFS volumes, HPF/LPF, stereo, sends, master)
- transitions-fx: FX track with risers/impacts/sweeps at section boundaries
- sidechain: MIDI CC11 bass ducking on kick hits via DrumLoopAnalyzer
- presets-pack: role-aware plugin presets (Serum/Decapitator/Omnisphere per role)
Full SDD pipeline (propose→spec→design→tasks→apply→verify) for all 7 changes.
302/302 tests passing.
2026-05-03 23:54:29 -03:00
renato97
48bc271afc
feat: SDD workflow — test sync, song generation + validation, ReaScript hybrid pipeline
...
- compose-test-sync: fix 3 failing tests (NOTE_TO_MIDI, DrumLoopAnalyzer mock, section name)
- generate-song: CLI wrapper + RPP validator (6 structural checks) + 4 e2e tests
- reascript-hybrid: ReaScriptGenerator + command protocol + CLI + 16 unit tests
- 110/110 tests passing
- Full SDD cycle (propose→spec→design→tasks→apply→verify) for all 3 changes
2026-05-03 22:00:26 -03:00
renato97
7729d5f12f
feat: drumloop-first v2 — scored selection, WAV preference, no vocals
...
- Score drumloops by key_confidence + onset_density + duration + balance + format
- Prefer WAV over MP3 (lossless > lossy)
- 6 tracks only: Drumloop, Bass, Chords, Lead, Clap, Pad
- Clap ONLY in chorus+verse (dembow on beats 2, 3.5)
- Bass tresillo filtered by kick-free zones
- Chords i-VI-III-VII on downbeats
- Lead pentatonic, avoids transients, chord tones on strong beats
- Master chain: Pro-Q 3 → Pro-C 2 → Pro-L 2
- 90 tests passing, 18 plugins, clean RPP output
2026-05-03 20:07:00 -03:00
renato97
a2713abd40
feat: drumloop-first generation with forensic analysis
...
- Add DrumLoopAnalyzer: extracts BPM, transients, key, beat grid from drumloops
- Rewrite compose.py: drumloop drives everything (BPM, key, rhythm)
- Bass tresillo pattern placed in kick-free zones
- Chords change on downbeats matching drumloop key
- Melody avoids transients, emphasizes chord tones
- Vocal chops between transients, clap on dembow (beats 2, 3.5)
- Remove COLOR token (not recognized by REAPER)
- 90 tests passing, generates drumloop_song.rpp with 10 tracks, 20 plugins
2026-05-03 19:41:22 -03:00
renato97
672607c356
feat: full reggaeton song generator with master chain, sends, clap, vocal, drumloop
...
- Add master FXCHAIN with Pro-Q 3, Pro-C 2, Pro-L 2 on master track
- Add AUXRECV sends routing to Reverb/Delay return tracks
- Add clap track with CLAP_DEMBOW pattern
- Add vocal track with sample selection per section
- Add drumloop layer with loop detection
- Add track colors per role for visual organization
- Randomize chord progressions from genre config (5 options)
- Add master_plugins and send_level fields to schema
- Add _build_master_fxchain() and AUXRECV rendering to RPPBuilder
- 72 tests passing, RPP generates with 12 tracks, 18 sends, 20 plugins
2026-05-03 19:13:10 -03:00
renato97
8562bfbed1
fix: real preset data for all VST2/VST3 plugins, template system with ground-truth registry
...
- Extracted preset data from all_plugins_v2.rpp for 14 previously broken plugins
- Fixed PLUGIN_REGISTRY entries: Kontakt 7, Gullfoss, ValhallaDelay, VC 160/76, The Glue
- Template parser falls back to PLUGIN_PRESETS when source RPP has fake data
- Substitute Transient Master (not installed) with FabFilter Pro-C 2
- All 25 plugins now load correctly in REAPER
- Added template generator scripts and ground truth references
- Cleaned up temp/debug files from output/
2026-05-03 18:54:40 -03:00
renato97
3444006411
feat: pattern-based generators from real track analysis, RPP structure fixes, randomization
...
- Reverse-engineer drum patterns from 2 real reggaeton tracks with librosa
- Create patterns.py with extracted frequency data (kick/snare/hihat positions)
- Rewrite rhythm.py with pattern-bank generators (dembow, dense, trapico, offbeat)
- Rewrite melodic.py with section-aware generators and humanization
- Add weighted random sample selection in SampleSelector (top-5 pool)
- Add generate_structure() with randomized templates and energy variance
- Fix RPP structure: TEMPO arity (3→4 args), string quoting for empty strings
- Rewrite quick_drumloop_test.py with correct REAPER ground truth format
- Add scripts/analyze_examples.py for reverse engineering audio tracks
- Add --seed argument for reproducible generation
- 72 tests passing
2026-05-03 16:08:07 -03:00
renato97
32dafd94e0
feat: fix sample variety per section and reorganize sample library
...
- Fix compose.py to select different samples per section instead of one per role
- Add select_many() to SampleSelector for diverse sample selection
- Migrate 862 samples from scattered dirs to libreria/samples/{role}/
- Rename files with consistent convention: {role}_{key}_{bpm}_{character}_{hash}.wav
- Add migrate_library.py script with dry-run and verification
- Backup original index as sample_index_pre_migration.json
- 72 tests passing
2026-05-03 14:43:11 -03:00
renato97
53741b48b6
feat: VST3 preset data, project metadata, plugin registry fixes, and token cleanup
...
- Add VST3_PRESETS dict with base64 preset data for all 10 plugins (required by REAPER to load VST3)
- Fix VST3 registry: correct display names, filenames, and uniqueid GUIDs
- Add ~50 lines of REAPER project metadata (PANLAW, SAMPLERATE, METRONOME, etc.)
- Add 25 track attributes (PEAKCOL, BEAT, AUTOMODE, etc.) and FX chain metadata
- Remove unrecognized tokens (RENDER_CFG, PROJBAY, WAK) that caused REAPER warnings
- Update compose.py with section-based arrangement and registry key names
- Add SectionDef to schema
- 72 tests passing
2026-05-03 14:00:11 -03:00
renato97
af6d61c8a1
refactor: migrate from FL Studio to REAPER with rpp library
...
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)
2026-05-03 09:13:35 -03:00
renato97
1e2316a5a4
feat: add compose_full_track script for 2:30 arrangement generation
2026-05-02 21:51:38 -03:00
renato97
4d941f3f90
feat: reggaeton production system with intelligent sample selection and FLP generation
2026-05-02 21:40:18 -03:00