AVANCES CLAVE: ✅ B001 FIX: MIDI instruments cargan correctamente (Wavetable/Operator) ✅ API fix: app.view.selected_track → self._song.view.selected_track ✅ clear_project: Nuevo comando para limpiar Session + Arrangement View ✅ Drum loop + Harmony: 100bpm gata con progresión Am-F-C-G funcionando ✅ 13 scenes production: Sistema completo operativo Estado: MUY FELIZ, todo funciona perfectamente 🚀
3.2 KiB
3.2 KiB
Sprint 6: Professional Session View Production
Goal
Transform _cmd_build_song from basic sample rotation into a professional
Session View production system. All work is Session View only — the user
records to Arrangement View manually with F9.
Current State (Sprint 5)
- 11 tracks (7 audio + 4 MIDI)
- 5 scenes (Intro, Verse, Chorus, Bridge, Outro)
- Simple modulo sample rotation (2 samples per category)
- No velocity/energy variation across scenes
- No transition fills between sections
- No pad/texture layers
- Fragile Session→Arrangement recording
Sprint 6 Changes
Module 1: Expanded Track Layout (14 tracks)
Audio (9):
- Drum Loop - Full groove loop
- Kick - One-shot
- Snare/Clap - One-shot
- HiHat - One-shot
- Shaker/Perc - Additional percussive layer
- Perc Loop - Percussion loop
- Bass Audio - Bass sample loop
- FX - Risers, impacts, transitions
- Ambience - Atmospheric textures
MIDI (5): 10. Dembow - Wavetable (4 variations per scene) 11. Chords - Wavetable (8 different progressions) 12. Lead - Operator (density varies by energy) 13. Sub Bass - Operator (4 styles per scene) 14. Pad/Texture - Wavetable (sustained chords)
Module 2: 8 Scenes with Energy Profiles
| Scene | Name | Bars | Energy | Elements |
|---|---|---|---|---|
| 0 | Intro | 4 | 0.30 | pad + ambience + hi-hats |
| 1 | Verse A | 8 | 0.60 | drums + bass + chords + dembow |
| 2 | Verse B | 8 | 0.65 | all verse + lead melody |
| 3 | Pre-Chorus | 4 | 0.75 | build + riser FX + pad |
| 4 | Chorus A | 8 | 0.95 | full energy, all elements + impact |
| 5 | Chorus B | 8 | 0.90 | chorus variation, different patterns |
| 6 | Bridge | 4 | 0.40 | breakdown, bass + pad + ambience |
| 7 | Outro | 4 | 0.20 | pad + ambience fade |
Module 3: Per-Scene Sample Swapping
_pick_for_scene(): distributes ALL available samples across 8 scenes- Each scene gets a different sample from each category
- Energy-based: softer samples for intro/bridge, punchy for chorus
Module 4: Energy-Based Velocity
_velocity_range(energy): maps 0.0-1.0 to MIDI velocity ranges- Intro: vel 70-80, Verse: 85-100, Chorus: 95-127, Bridge: 60-80, Outro: 50-70
- Applied to all MIDI pattern generation
Module 5: Better MIDI Patterns
- Dembow: 4 variations (minimal, standard, double, triple) mapped to scene energy
- Chords: 8 different progressions across scenes
- Bass: 4 styles (sub, standard, staccato, slide/melodic)
- Lead: density scales with energy (0.5-0.8)
- Pad: sustained triads with whole-note durations
Module 6: Humanization
- Applied to all 5 MIDI tracks after generation
- Instrument-specific profiles (kick=5ms, snare=10ms, hats=15ms)
- BPM-aware timing conversion
Module 7: Transition FX
- Pre-Chorus scene gets FX clip (riser)
- Chorus A scene gets FX clip (impact)
- Bridge scene gets ambience clip (downlifter feel)
Removed
_start_translate_to_arrangementcall (user does F9 manually)_translate_tickstill exists but not triggered by build_song
Files Modified
__init__.py:_cmd_build_songrewritten (lines 5342-5705)
Testing
- Health check (5/5)
- Run
build_song - Verify 14 tracks created
- Verify 8 scenes with clips
- Fire each scene and listen
- Press F9 to record to Arrangement