Files
ableton-mcp-ai/docs/sprint_4_bloque_B.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

9.3 KiB

SPRINT 4 — BLOQUE B: TESTING END-TO-END, INTEGRACIÓN Y WORKFLOW DE PRODUCCIÓN (T051-T100)

Fecha: 2026-04-11 Estado Sprint 4-A: COMPLETO — Verificación post-ejecución, Browser API, Arrangement, Diagnóstico, Robustez Objetivo Sprint 4-B: Que TODO funcione end-to-end con Ableton abierto y real Revisión: Qwen


CONTEXTO

Sprint 4-A agregó verificación, diagnóstico y robustez. Ahora sabemos EXACTAMENTE qué funciona y qué no. El Bloque B se enfoca en:

  1. Testing real — ejecutar cada tool con Ableton abierto y verificar que se vea en la UI
  2. Integración completa — conectar engines del Sprint 3 (song_generator, pattern_library, mixing_engine) con handlers del Sprint 4-A
  3. Workflow de producción — pipeline completo de una canción de reggaeton profesional

FASE B1: TESTING END-TO-END (T051-T065)

Objetivo: Cada tool nueva debe probarse con Ableton abierto

T051 — Test ping → Verificar que responde instantáneamente (< 100ms) T052 — Test health_check → Score debe ser 5/5 con Ableton corriendo T053 — Test get_system_diagnostics → Debe retornar versión de Live, estado del browser, sesión T054 — Test get_live_version → Debe retornar "12.x.x" T055 — Test test_browser_connection → Debe listar secciones disponibles T056 — Test scan_browser_section("instruments", depth=1) → Debe retornar lista de instruments T057 — Test get_track_details(0) → Debe retornar snapshot del primer track T058 — Test get_device_parameters(track_index, device_index) → Debe listar parámetros de un device T059 — Test set_device_parameter() → Debe cambiar un parámetro y verificar el cambio T060 — Test get_clip_notes() → Debe leer notas de un clip MIDI existente T061 — Test show_arrangement_view() → Debe cambiar la vista de Ableton a Arrangement T062 — Test show_session_view() → Debe cambiar la vista de Ableton a Session T063 — Test set_arrangement_position(bar=0) → Debe mover el playhead al inicio T064 — Test loop_arrangement_region(0, 8) → Debe crear un loop de 8 bars T065 — Test test_sample_loading() con sample real → Debe reportar qué métodos funcionan


FASE B2: INTEGRACIÓN ENGINES → HANDLERS (T066-T080)

Objetivo: Los engines del Sprint 3 deben usarse en handlers reales

T066_cmd_generate_full_song() debe usar ReggaetonGenerator.generate():

  • Generar config con song_generator.py
  • Para cada track en config:
    • Crear track en Ableton
    • Generar notas con pattern_library.py
    • Crear clips y escribir notas
    • Verificar con _verify_clip_has_audio()

T067_cmd_generate_dembow_clip() debe usar DembowPatterns.get_kick_pattern():

  • Obtener pattern real de pattern_library.py
  • Crear clip en Ableton
  • Escribir notas del pattern
  • Verificar notas escritas

T068_cmd_generate_bass_clip() debe usar BassPatterns.get_bass_line():

  • Obtener línea de bass de pattern_library.py
  • Crear clip y escribir notas
  • Verificar

T069_cmd_generate_chords_clip() debe usar ChordProgressions:

  • Obtener progresión de acordes
  • Generar notas de acordes con voicings
  • Escribir en clip
  • Verificar

T070_cmd_generate_melody_clip() debe usar MelodyGenerator.generate_melody():

  • Generar melodía con escala detectada
  • Crear clip y escribir notas
  • Verificar

T071_cmd_apply_human_feel() debe usar HumanFeel.apply_all_humanization():

  • Leer notas existentes del clip
  • Aplicar micro-timing, velocity variation
  • Re-escribir notas
  • Verificar cambios

T072_cmd_add_percussion_fills() debe usar PercussionLibrary:

  • Obtener fills de pattern_library.py
  • Crear clips de fills en posiciones de transición
  • Verificar

T073_cmd_create_bus_track() debe usar BusManager de mixing_engine.py:

  • Crear bus con configuración profesional
  • Verificar que el track existe
  • Retornar track_index

T074_cmd_route_track_to_bus() debe usar BusManager.route_track_to_bus():

  • Routear track al bus correcto
  • Verificar routing
  • Retornar confirmación

T075_cmd_configure_eq() debe usar EQConfiguration.get_preset():

  • Insertar EQ Eight si no existe
  • Configurar con preset apropiado
  • Verificar parámetros

T076_cmd_configure_compressor() debe usar CompressionSettings:

  • Insertar Compressor si no existe
  • Configurar con preset
  • Verificar

T077_cmd_setup_sidechain() debe usar CompressionSettings + BusManager:

  • Insertar Compressor en target
  • Configurar sidechain desde kick
  • Verificar sidechain_active

T078_cmd_apply_master_chain() debe usar MasterChain.apply_master_chain():

  • Insertar cadena completa: EQ → Comp → Sat → Limiter
  • Configurar con preset (club/streaming/radio)
  • Verificar cada device

T079_cmd_auto_gain_staging() debe usar GainStaging.auto_gain_staging():

  • Ajustar volúmenes de todos los tracks
  • Verificar headroom
  • Retornar niveles aplicados

T080_cmd_full_quality_check() debe usar MixQualityChecker.run_quality_check():

  • Analizar clipping, phase, frequency balance
  • Retornar score y sugerencias

FASE B3: WORKFLOW DE PRODUCCIÓN COMPLETO (T081-T095)

Objetivo: Un pipeline completo de análisis → generación → mezcla → export

T081_cmd_analyze_library():

  • Ejecutar análisis espectral de 511 samples
  • Generar .features_cache.json
  • Retornar estadísticas completas

T082_cmd_build_embeddings_index():

  • Crear embeddings de 511 samples
  • Guardar .embeddings_index.json
  • Retornar dimensiones y count

T083_cmd_get_similar_samples(sample_path, top_n=10):

  • Buscar samples similares por distancia coseno
  • Retornar ranking con similitudes

T084_cmd_find_samples_like_audio(audio_path, top_n=20):

  • Analizar archivo de referencia
  • Encontrar samples similares en librería
  • Retornar matches con scores

T085_cmd_get_user_sound_profile():

  • Cargar perfil desde .user_sound_profile.json
  • Retornar BPM, key, timbre preferidos

T086_cmd_get_recommended_samples(role, count=5):

  • Usar perfil del usuario para recomendar
  • Retornar samples por rol

T087_cmd_generate_from_reference(reference_audio_path):

  • Analizar referencia
  • Seleccionar samples similares
  • Generar track completo con samples reales
  • Configurar buses y mezcla
  • Retornar resumen completo

T088_cmd_produce_reggaeton(bpm, key, style, structure):

  • Pipeline completo:
    1. Seleccionar samples con get_recommended_samples()
    2. Generar config con ReggaetonGenerator
    3. Crear tracks en Ableton
    4. Generar clips con patterns reales
    5. Configurar buses y routing
    6. Aplicar mezcla automática
    7. Configurar sidechain
  • Retornar resumen completo con verificación

T089_cmd_produce_arrangement(bpm, key, style, structure):

  • Como T088 pero en Arrangement View
  • Clips posicionados en tiempo
  • Automatización incluida

T090_cmd_complete_production(bpm, key, style, output_dir):

  • Pipeline T088 + renderizado
  • Exportar stems + full mix
  • Generar release notes
  • Retornar paths de archivos

T091_cmd_batch_produce(count, style, bpm_range, key_range):

  • Generar múltiples canciones
  • Variación automática
  • Cada una única

T092_cmd_export_stems(output_dir):

  • Renderizar cada bus como stem
  • Drums, Bass, Music, FX stems
  • Guardar en directorio

T093_cmd_render_full_mix(output_path):

  • Renderizar mezcla completa
  • WAV 24-bit/44.1kHz
  • Con mastering aplicado

T094_cmd_render_instrumental(output_path):

  • Mutear melodías/vocals
  • Renderizar solo drums + bass

T095_cmd_generate_release_notes():

  • Generar notas de release
  • BPM, key, structure
  • Samples usados
  • Mixing notes
  • Loudness stats

FASE B4: DOCUMENTACIÓN Y UX (T096-T100)

T096 — Crear docs/GUIA_DE_USO.md:

  • Lista completa de 118+ tools
  • Descripción de cada una
  • Ejemplos de uso
  • Orden recomendado para producción

T097 — Crear docs/WORKFLOW_REGGAETON.md:

  • Pipeline paso a paso para producir reggaeton
  • Desde análisis de librería hasta export final
  • Screenshots descriptivos

T098 — Crear docs/TROUBLESHOOTING.md:

  • Problemas comunes y soluciones
  • Cómo diagnosticar con health_check() y get_system_diagnostics()
  • Qué hacer si Ableton no responde

T099 — Tool MCP help() → Retorna lista de tools con descripción breve T100 — Tool MCP get_workflow_status() → Retorna estado actual del proyecto


ARCHIVOS A MODIFICAR

Archivo Cambios
AbletonMCP_AI/__init__.py +30 handlers nuevos (workflow completo)
mcp_server/server.py +15 tools MCP nuevas
docs/GUIA_DE_USO.md Nuevo - Documentación completa
docs/WORKFLOW_REGGAETON.md Nuevo - Pipeline de producción
docs/TROUBLESHOOTING.md Nuevo - Diagnóstico

RESTRICCIONES

  1. Compilar después de cada archivo: python -m py_compile "<path>"
  2. NO tocar libreria/ - solo lectura
  3. Cada handler debe verificar POST-ejecución (usar patterns del Sprint 4-A)
  4. Mantener compatibilidad con 118 tools existentes
  5. Paths absolutos de Windows en todo

Cuando termines, avisale a Qwen. Él va a: compilar, probar con Ableton, arreglar bugs, y verificar end-to-end.