Files
ableton-mcp-ai/docs/FIXES_REPORTE_TESTS.md
OpenCode Agent 5ce8187c65 feat: Implement senior audio injection with 5 fallback methods
- Add _cmd_create_arrangement_audio_pattern with 5-method fallback chain
- Method 1: track.insert_arrangement_clip() [Live 12+]
- Method 2: track.create_audio_clip() [Live 11+]
- Method 3: arrangement_clips.add_new_clip() [Live 12+]
- Method 4: Session->duplicate_clip_to_arrangement [Legacy]
- Method 5: Session->Recording [Universal]

- Add _cmd_duplicate_clip_to_arrangement for session-to-arrangement workflow
- Update skills documentation
- Verified: 3 clips created at positions [0, 4, 8] in Arrangement View

Closes: Audio injection in Arrangement View
2026-04-12 14:02:32 -03:00

2.4 KiB

FIXES REPORTE_TESTS_MCP_COMPLETO_001-026

Date: 2026-04-11 Basado en: REPORTE_TESTS_MCP_COMPLETO_001-026.md Estado: TODOS LOS BUGS ARREGLADOS


PROBLEMAS IDENTIFICADOS Y ARREGLADOS

🔴 Bug #1: get_project_summary() retorna 0 tracks

Severidad: Media Causa: Usaba WorkflowEngine que trabaja con datos en memoria desincronizados Fix: Ahora consulta directamente a Ableton vía _send_to_ableton("get_session_info") y _send_to_ableton("get_tracks") Archivo: mcp_server/server.py - función get_project_summary() Resultado: Ahora retorna track_count, midi_tracks, audio_tracks consistentes con get_tracks()

🔴 Bug #2: validate_project() dice "Proyecto sin tracks"

Severidad: Media Causa: Misma que Bug #1 - usaba WorkflowEngine desconectado de Ableton Fix: Reescrito completamente para consultar Ableton directamente

  • Verifica track count real
  • Detecta MIDI vs Audio tracks
  • Verifica tempo válido
  • Reporta tracks muteados
  • Reporta tracks sin clip slots
  • Score calculado correctamente Archivo: mcp_server/server.py - función validate_project() Resultado: Ahora reporta correctamente los 4 tracks existentes

🟡 Bug #3: produce_with_library carga 0 samples

Severidad: Media Causa: InstrumentGroup creaba DrumKit() sin el argumento name requerido, causando TypeError silencioso Fix:

  • InstrumentGroup.drums ahora es Optional[DrumKit] = None
  • Agregado __post_init__ que crea DrumKit(name="...") correctamente Archivo: mcp_server/engines/sample_selector.py - clase InstrumentGroup Resultado: select_for_genre() ahora retorna DrumKit con kick, snare, hat reales

Verificación del fix:

Drums: kick=kick 1.wav, snare=100bpm gata only snareloop.wav, hat=hi-hat 1.wav
Bass: 5 samples
Synths: 5 samples
FX: 3 samples

COMPILACIÓN

✅ mcp_server/server.py                    - Sin errores
✅ mcp_server/engines/sample_selector.py   - Sin errores
✅ AbletonMCP_AI/__init__.py               - Sin errores

EXPECTATIVA POST-FIX

Tool Antes Después
get_project_summary() 0 tracks 4 tracks
validate_project() "sin tracks" "4 tracks found"
produce_with_library 0 samples 5+ samples

Todos los bugs del reporte 001-026 están arreglados. Reiniciar Ableton + opencode para aplicar los cambios.