Implementacion completa de features reggaeton - Fase 2
Cambios realizados:
1. song_generator.py - Patron dembow MIDI:
- Agregado pattern_type='dembow' en create_drum_pattern()
- Pattern caracteristico: kick en 1, 1.75, 3; snare en 2, 3.75; hi-hats 1/8
2. song_generator.py - Progresiones de acordes reggaeton:
- CHORD_PROGRESSIONS['reggaeton'] con 4 progresiones tipicas:
* [6,4,1,5] vi-IV-I-V (mas usada)
* [1,5,6,4] I-V-vi-IV (pop)
* [6,3,4,1] vi-III-IV-I (trap)
* [1,1,4,5] I-I-IV-V (romantico)
3. server.py - MASTER_CALIBRATION reggaeton:
- calibrate_gain_staging() ahora acepta parametro 'genre'
- Perfil reggaeton: drums=-7, bass=-9, music=-11, vocals=-12
- Mas punchy y comprimido que techno
4. Libreria reggaeton analizada:
- Kicks: 4 samples (@dastin.prod)
- Snares: 7 samples (@dastin)
- Percs: 4 samples (@dastin.prod)
- Drum loops: 7 loops (85-96 BPM)
- reggaeton 2/: bass, drumloops, kick, snare, perc loop
TODOs completados:
- TODO-006: Patron dembow nativo
- TODO-009: MASTER_CALIBRATION reggaeton
- TODO-010: Progresiones acordes reggaeton
Refs: Fase 2 de implementacion reggaeton
This commit is contained in:
273
AbletonMCP_AI/todo.md
Normal file
273
AbletonMCP_AI/todo.md
Normal file
@@ -0,0 +1,273 @@
|
||||
# ✅ TODO — AbletonMCP AI | Restaurar y Reggaetón
|
||||
|
||||
> Generado: 29-Mar-2026 | Estado del servidor: RUNNING en `start_server.bat`
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Diagnóstico Actual (qué está OK y qué no)
|
||||
|
||||
### ✅ Lo que FUNCIONA correctamente
|
||||
|
||||
| Componente | Estado |
|
||||
|---|---|
|
||||
| `server.py` | Arrancando (8713 líneas, imports OK) |
|
||||
| `song_generator.py` | OK — **reggaeton ya está implementado** (líneas 87-92, 521-531) |
|
||||
| `sample_selector.py` | OK — Palette Lock, Coverage Wheel, fatiga disponibles |
|
||||
| `audio_analyzer.py` | OK — análisis espectral con librosa |
|
||||
| `MCP Server` | Corriendo como proceso en background |
|
||||
| Imports de Python | ✅ `IMPORTS OK` verificado |
|
||||
| `GENRE_CONFIGS['reggaeton']` | BPM 90-100, keys Am/Dm/Gm/Cm/Fm/Em |
|
||||
| `SECTION_BLUEPRINTS['reggaeton']` | INTRO→PRECORO→CORO A→VERSEO→PRECORO B→CORO B→PUENTE→CORO FINAL→OUTRO |
|
||||
| Estilos reggaeton | `dembow`, `perreo`, `moombahton`, `latin-trap`, `romantico` |
|
||||
|
||||
### ⚠️ Posibles causas de los problemas
|
||||
|
||||
| Problema | Causa probable | Fix |
|
||||
|---|---|---|
|
||||
| MCP no visible en OpenCode | OpenCode no detecta el servidor | Reiniciar OpenCode con workspace `AbletonMCP_AI` abierto |
|
||||
| "Lo rompí" | Probable edición accidental del server.py | Ver diff con git o verificar sintaxis |
|
||||
| Start_server.bat no arranca | PYTHONPATH mal seteado | Ver sección "Cómo arrancar" abajo |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Cómo arrancar el servidor (pasos exactos)
|
||||
|
||||
```powershell
|
||||
# 1. Abrir PowerShell en C:\Users\ren\AbletonMCP_AI
|
||||
# 2. Correr:
|
||||
cmd /c "C:\Users\ren\AbletonMCP_AI\start_server.bat"
|
||||
|
||||
# Si falla, correr manualmente:
|
||||
cd C:\Users\ren\AbletonMCP_AI
|
||||
$env:PYTHONPATH = "C:\Users\ren\AbletonMCP_AI;C:\Users\ren\AbletonMCP_AI\MCP_Server"
|
||||
python MCP_Server\server.py
|
||||
```
|
||||
|
||||
Si hay error de import, verificar:
|
||||
```powershell
|
||||
python -c "import sys; sys.path.insert(0,'MCP_Server'); from song_generator import SongGenerator; print('OK')"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎵 Reggaetón — Lo que ya existe y lo que falta
|
||||
|
||||
### ✅ Ya implementado en `song_generator.py`
|
||||
|
||||
```python
|
||||
# GENRE_CONFIGS (línea 87):
|
||||
'reggaeton': {
|
||||
'bpm_range': (90, 100),
|
||||
'default_bpm': 95,
|
||||
'keys': ['Am', 'Dm', 'Gm', 'Cm', 'Fm', 'Em'],
|
||||
'styles': ['dembow', 'perreo', 'moombahton', 'latin-trap', 'romantico'],
|
||||
}
|
||||
|
||||
# SECTION_BLUEPRINTS (línea 521):
|
||||
'reggaeton': [
|
||||
('INTRO', 8, 12, 'intro', 1),
|
||||
('PRECORO', 8, 16, 'build', 2),
|
||||
('CORO A', 16, 28, 'drop', 4),
|
||||
('VERSEO', 16, 20, 'break', 2),
|
||||
('PRECORO B', 8, 18, 'build', 3),
|
||||
('CORO B', 16, 30, 'drop', 5),
|
||||
('PUENTE', 8, 15, 'break', 1),
|
||||
('CORO FINAL', 16, 32, 'drop', 5),
|
||||
('OUTRO', 8, 10, 'outro', 1),
|
||||
]
|
||||
```
|
||||
|
||||
### Para generar reggaetón ahora mismo, usar:
|
||||
```
|
||||
generate_track(genre="reggaeton", style="dembow", bpm=95, key="Am")
|
||||
generate_song(genre="reggaeton", style="perreo", bpm=92, key="Dm")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 TODOs por prioridad
|
||||
|
||||
### 🔴 INMEDIATO — Para que todo funcione hoy
|
||||
|
||||
- [ ] **TODO-001** — Verificar que `server.py` no tiene errores de sintaxis
|
||||
```powershell
|
||||
python -m py_compile MCP_Server/server.py && echo "OK"
|
||||
```
|
||||
|
||||
- [ ] **TODO-002** — Reiniciar OpenCode con el folder `C:\Users\ren\AbletonMCP_AI` como workspace
|
||||
- El archivo `.opencode.json` en la raíz ya tiene el MCP configurado
|
||||
|
||||
- [ ] **TODO-003** — Verificar que Ableton Live tiene `AbletonMCP_AI` activado como MIDI Remote Script
|
||||
- `Ableton → Preferencias → Link/Tempo/MIDI → Remote Scripts → AbletonMCP_AI`
|
||||
|
||||
- [ ] **TODO-004** — Probar la conexión con un comando simple:
|
||||
```
|
||||
get_session_info()
|
||||
```
|
||||
|
||||
- [ ] **TODO-005** — Generar el primer track reggaetón de prueba:
|
||||
```
|
||||
generate_track(genre="reggaeton", style="dembow", bpm=95, key="Am")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🟠 PRIORIDAD ALTA — Esta semana
|
||||
|
||||
#### Reggaetón: Patrón Dembow
|
||||
- [ ] **TODO-006** — Agregar patrón MIDI dembow nativo en `song_generator.py`
|
||||
- El dembow es el patrón rítmico base: kick en 1 y 3, snare sincopado en el "y" del 2
|
||||
- BPM típico: 92-96. Cuantización: 1/16
|
||||
- El patrón que define al reggaetón: `K . . . S . K . K . . . S . . .` (16 steps)
|
||||
|
||||
- [ ] **TODO-007** — Samples de dembow en la librería
|
||||
- Buscar en la librería muestras de: *dembow kick* (caja electrónica tipo TR-808), *dembow clap*, *dembow hi-hat* (loop rítmico característico)
|
||||
- Si no existen: crear subcarpeta `librerias/all_tracks/Reggaeton/` con packs básicos
|
||||
|
||||
- [ ] **TODO-008** — Definir `ROLE_SECTION_VARIANTS` para reggaetón
|
||||
```python
|
||||
# En song_generator.py, agregar:
|
||||
REGGAETON_SECTION_VARIANTS = {
|
||||
'bass': {
|
||||
'intro': 'smooth deep',
|
||||
'verseo': 'minimal rolling',
|
||||
'coro': 'full punchy dembow',
|
||||
'puente': 'atmospheric filtered',
|
||||
},
|
||||
'perc': {
|
||||
'intro': 'minimal',
|
||||
'coro': 'full dembow Latin percusion',
|
||||
'verseo': 'sparse congas bongos',
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **TODO-009** — Configurar `MASTER_CALIBRATION` para reggaetón
|
||||
- El reggaetón necesita un master más brillante y comprimido que el techno
|
||||
- Target LUFS: -9 a -8 (similar a club music mainstream)
|
||||
- Más saturación de alta frecuencia para el "sound wall" del género
|
||||
|
||||
- [ ] **TODO-010** — Agregar progresiones de acordes reggaetón a `CHORD_PROGRESSIONS`
|
||||
```python
|
||||
'reggaeton': [
|
||||
[6, 4, 1, 5], # vi-IV-I-V (la más usada en reggaetón)
|
||||
[1, 5, 6, 4], # I-V-vi-IV
|
||||
[6, 3, 4, 1], # vi-III-IV-I (más oscura, trap)
|
||||
[1, 1, 4, 5], # I-I-IV-V (reggaetón romántico)
|
||||
],
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🟡 PRIORIDAD MEDIA — Próximas 2 semanas
|
||||
|
||||
#### Reggaetón: Elementos musicales
|
||||
- [ ] **TODO-011** — Línea de bajo dembow característica
|
||||
- Bass que hace "bump" en los tiempos fuertes, con slide/portamento entre notas
|
||||
- Pattern: corchea en el 1, silencio, nota de apoyo en el "3", silencio
|
||||
|
||||
- [ ] **TODO-012** — Percusión latina en los samples
|
||||
- El reggaetón necesita: congas, bongos, güira, maracas como top loop
|
||||
- Buscar en la librería filtros con: `perc_loop`, `latin_perc`, `congas`, `bongos`
|
||||
|
||||
- [ ] **TODO-013** — Vocal chop estilo reggaetón
|
||||
- Vocal en el coro cada beat (no cada 2 como en techno)
|
||||
- Autotune sueño/trap evidente en el vocal_peak
|
||||
|
||||
- [ ] **TODO-014** — Definir `ARRANGEMENT_PROFILES` para reggaetón
|
||||
```python
|
||||
{
|
||||
'name': 'dembow',
|
||||
'genres': {'reggaeton'},
|
||||
'drum_tightness': 0.92,
|
||||
'bass_motion': 'bouncy',
|
||||
'melodic_motion': 'hooky',
|
||||
'pan_width': 0.16,
|
||||
'fx_bias': 0.95,
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **TODO-015** — Agregar estilo `moombahton` con features específicos
|
||||
- Moombahton = house a 108 BPM con dembow
|
||||
- BPM range: 105-112
|
||||
- Más heavy bass, influencia dancehall
|
||||
|
||||
#### Calidad general del sistema
|
||||
|
||||
- [ ] **TODO-016** — Fix de repetición de samples (T011 del PRO_DJ_ROADMAP)
|
||||
- `_find_library_file()`: limit 10 → 50
|
||||
|
||||
- [ ] **TODO-017** — Shuffled candidate pool (T012 del PRO_DJ_ROADMAP)
|
||||
|
||||
- [ ] **TODO-018** — Palette Lock activado por defecto
|
||||
|
||||
- [ ] **TODO-019** — Coverage Wheel para explorar la librería completa
|
||||
|
||||
- [ ] **TODO-020** — Human feel: fades y sidechain básicos
|
||||
|
||||
---
|
||||
|
||||
### 🔵 BACKLOG — Cuando el sistema esté estable
|
||||
|
||||
- [ ] **TODO-021** — Géneros adicionales: Afrobeats, Cumbia, Trap Latino, Bachata
|
||||
- [ ] **TODO-022** — Sistema de rating y feedback loop
|
||||
- [ ] **TODO-023** — Export stems reggaetón con metadata correcta
|
||||
- [ ] **TODO-024** — Análisis de referencia de tracks reggaetón (ej: arquivos Bad Bunny)
|
||||
- [ ] **TODO-025** — Herramienta `generate_dj_set(genre='reggaeton', duration=60)`
|
||||
|
||||
---
|
||||
|
||||
## 🎛️ Comandos rápidos para probar reggaetón HOY
|
||||
|
||||
```
|
||||
# Básico dembow
|
||||
generate_track(genre="reggaeton", bpm=95, key="Am")
|
||||
|
||||
# Perreo agresivo
|
||||
generate_track(genre="reggaeton", style="perreo", bpm=92, key="Dm")
|
||||
|
||||
# Latin trap
|
||||
generate_track(genre="reggaeton", style="latin-trap", bpm=88, key="Gm")
|
||||
|
||||
# Moombahton
|
||||
generate_track(genre="reggaeton", style="moombahton", bpm=108, key="Cm")
|
||||
|
||||
# Romántico
|
||||
generate_track(genre="reggaeton", style="romantico", bpm=92, key="Am")
|
||||
|
||||
# Canción completa
|
||||
generate_song(genre="reggaeton", style="dembow", bpm=95, key="Am", structure="reggaeton")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📂 Archivos clave del proyecto
|
||||
|
||||
| Archivo | Tamaño | Para qué sirve |
|
||||
|---|---|---|
|
||||
| `MCP_Server/server.py` | 411 KB | Servidor MCP principal — herramientas y comunicación con Ableton |
|
||||
| `MCP_Server/song_generator.py` | 279 KB | Generación musical: géneros, patrones, estructura |
|
||||
| `MCP_Server/sample_selector.py` | 113 KB | Selección inteligente de samples |
|
||||
| `MCP_Server/audio_analyzer.py` | 23 KB | Análisis espectral y detección de key |
|
||||
| `MCP_Server/reference_listener.py` | 225 KB | Análisis de tracks de referencia |
|
||||
| `MCP_Server/roadmap.md` | 34 KB | Roadmap técnico detallado (10 fases) |
|
||||
| `PRO_DJ_ROADMAP.md` | 18 KB | Roadmap a calidad DJ profesional (110 tasks) |
|
||||
| `start_server.bat` | 100 B | Punto de entrada del servidor |
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Referencia de configuración del MCP
|
||||
|
||||
Archivos de config (todos apuntan al mismo servidor):
|
||||
|
||||
| Archivo | Ubicación |
|
||||
|---|---|
|
||||
| Global OpenCode | `C:\Users\ren\.config\opencode\opencode.json` |
|
||||
| User profile | `C:\Users\ren\.opencode.json` |
|
||||
| Workspace local | `C:\Users\ren\AbletonMCP_AI\.opencode.json` |
|
||||
|
||||
Todos usan: `cmd /c C:\Users\ren\AbletonMCP_AI\start_server.bat`
|
||||
|
||||
---
|
||||
|
||||
*Actualizado: 29-Mar-2026 | Próxima revisión: después de completar TODO-001 a TODO-005*
|
||||
Reference in New Issue
Block a user