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

20 KiB

WORKFLOW DE PRODUCCION REGGAETON

Pipeline completo de produccion de reggaeton con AbletonMCP_AI, desde analisis de libreria hasta export final.

Tabla de Contenidos

  1. Vista General del Pipeline
  2. Fase 1: Analisis de Libreria
  3. Fase 2: Seleccion de Samples
  4. Fase 3: Produccion Completa
  5. Fase 4: Verificacion de Calidad
  6. Fase 5: Export Final
  7. Ejemplo Completo Paso a Paso
  8. Variantes de Estilo
  9. Produccion en Lote
  10. Produccion desde Referencia

Vista General del Pipeline

┌─────────────────────────────────────────────────────────────────┐
│                   PIPELINE DE PRODUCCION                        │
├─────────────┬─────────────┬─────────────┬─────────────┬─────────┤
│  FASE 1     │  FASE 2     │  FASE 3     │  FASE 4     │ FASE 5  │
│  Analisis   │  Seleccion  │  Produccion │  Calidad    │ Export  │
│             │             │             │             │         │
│ analyze_    │ get_recom-  │ produce_    │ full_quality│ render_ │
│ library     │ mended_     │ reggaeton   │ _check      │ stems   │
│             │ samples     │             │             │         │
│ get_user_   │ browse_     │ generate_   │ fix_quality │ render_ │
│ sound_      │ library     │ dembow_clip │ _issues     │ full_mix│
│ profile     │             │ generate_   │             │         │
│             │             │ bass_clip   │ validate_   │ create_ │
│             │             │ generate_   │ project     │ radio_  │
│             │             │ chords_clip │             │ edit    │
│             │             │ generate_   │             │         │
│             │             │ melody_clip │             │ create_ │
│             │             │             │             │ dj_edit │
├─────────────┴─────────────┴─────────────┴─────────────┴─────────┤
│  Duracion estimada: 15-45 minutos (dependiendo del hardware)    │
└─────────────────────────────────────────────────────────────────┘

Fase 1: Analisis de Libreria

Objetivo: Analizar toda la biblioteca de samples para extraer caracteristicas sonoras.

Paso 1.1: Verificar estado del sistema

Command: health_check()
Expected: {"score": "5/5", "status": "HEALTHY"}

Si el score es menor a 4/5, reiniciar el Remote Script en Ableton antes de continuar.

Paso 1.2: Analizar la biblioteca

Command: analyze_library(force_reanalyze=False)
Expected: {"total_analyzed": N, "cache_file": "..."}
  • force_reanalyze=False: Usa cache existente (mas rapido)
  • force_reanalyze=True: Reanaliza todo (lento pero actualizado)

Duracion: 2-10 minutos dependiendo del numero de samples.

Paso 1.3: Obtener estadisticas

Command: get_library_stats()
Expected: {
  "total_files_found": N,
  "files_by_role": {
    "kick": N,
    "snare": N,
    "hat_closed": N,
    "hat_open": N,
    "clap": N,
    "perc": N,
    "bass": N,
    "synths": N,
    "fx": N
  },
  "bpm_distribution": {...},
  "key_distribution": {...}
}

Paso 1.4: Obtener perfil de sonido del usuario

Command: get_user_sound_profile()
Expected: {
  "preferred_bpm_range": "90-100",
  "preferred_key": "Am",
  "sonic_characteristics": ["warm", "punchy", "clean"],
  "sample_preferences": {...}
}

Fase 2: Seleccion de Samples

Objetivo: Seleccionar los mejores samples para la produccion actual.

Paso 2.1: Obtener samples recomendados

Command: get_recommended_samples(role="kick", count=5)
Expected: {
  "role": "kick",
  "samples": [
    {"path": "...", "name": "...", "bpm": 95, "key": "Am", "score": 0.92},
    ...
  ]
}

Roles disponibles:

  • kick - Bombo
  • snare - Caja
  • hat_closed - Hi-hat cerrado
  • hat_open - Hi-hat abierto
  • clap - Palma
  • perc - Percusion
  • bass - Bajo
  • synths - Sintetizadores
  • fx - Efectos

Paso 2.2: Navegar la biblioteca con filtros

Command: browse_library(role="kick", bpm_min=90, bpm_max=100, key="Am")
Expected: {
  "total": N,
  "samples": [
    {"path": "...", "bpm": 95, "key": "Am", "pack": "...", "role": "kick", ...},
    ...
  ]
}

Paso 2.3: Comparar samples candidatos

Command: compare_two_samples(
  path1="C:\\ProgramData\\Ableton\\Live 12 Suite\\Resources\\MIDI Remote Scripts\\libreria\\reggaeton\\kick\\kick_01.wav",
  path2="C:\\ProgramData\\Ableton\\Live 12 Suite\\Resources\\MIDI Remote Scripts\\libreria\\reggaeton\\kick\\kick_02.wav"
)
Expected: {
  "similarity": 0.85,
  "sample1": {...},
  "sample2": {...}
}

Paso 2.4: Seleccion completa para el genero

Command: select_samples_for_genre(genre="reggaeton", key="Am", bpm=95)
Expected: {
  "genre": "reggaeton",
  "key": "Am",
  "bpm": 95,
  "drums": {
    "kick": "kick_01.wav",
    "snare": "snare_03.wav",
    "clap": "clap_02.wav",
    "hat_closed": "hat_closed_01.wav",
    "hat_open": "hat_open_01.wav"
  },
  "bass": ["bass_01.wav", "bass_02.wav", ...],
  "synths": ["synth_01.wav", ...],
  "fx": ["fx_01.wav", ...]
}

Fase 3: Produccion Completa

Objetivo: Generar la produccion completa con todos los elementos musicales.

Opcion A: Pipeline Automatico (Recomendado)

Command: produce_reggaeton(
  bpm=95,
  key="Am",
  style="classic",
  structure="verse-chorus"
)

Este comando ejecuta automaticamente:

  1. Creacion de pistas (drums, bass, chords, melody, fx)
  2. Generacion de clips MIDI para cada elemento
  3. Carga de samples seleccionados
  4. Configuracion inicial de mezcla
  5. Estructura de cancion completa

Parametros de style:

  • "classic" - Reggaeton clasico estilo 2000s
  • "dembow" - Dembow puro, enfocado en el ritmo
  • "perreo" - Perreo intenso, bass pesado
  • "moombahton" - Moombahton, mas melodico

Parametros de structure:

  • "verse-chorus" - Estructura verso-estribillo
  • "full" - Estructura completa (intro, verso, chorus, puente, outro)
  • "intro-drop" - Intro larga con drop principal

Opcion B: Construccion Manual Paso a Paso

Paso 3.1: Configurar proyecto

Command: set_tempo(tempo=95)
Command: set_time_signature(numerator=4, denominator=4)
Command: create_midi_track(index=-1)  → track 0: Drums
Command: create_midi_track(index=-1)  → track 1: Bass
Command: create_midi_track(index=-1)  → track 2: Chords
Command: create_midi_track(index=-1)  → track 3: Melody
Command: create_audio_track(index=-1) → track 4: Samples

Paso 3.2: Nombrar pistas

Command: set_track_name(track_index=0, name="Drums")
Command: set_track_name(track_index=1, name="Bass")
Command: set_track_name(track_index=2, name="Chords")
Command: set_track_name(track_index=3, name="Melody")
Command: set_track_name(track_index=4, name="Samples")

Paso 3.3: Generar patron dembow

Command: generate_dembow_clip(
  track_index=0,
  clip_index=0,
  bars=4,
  variation="standard"
)

Variaciones disponibles:

  • "standard" - Patron dembow clasico (kick en 1, 1.5, 2, 2.5)
  • "minimal" - Patron simplificado
  • "complex" - Patron con notas adicionales y sincopas
  • "fill" - Patron de fill para transiciones

Paso 3.4: Generar linea de bajo

Command: generate_bass_clip(
  track_index=1,
  clip_index=0,
  bars=4,
  root_notes=[36, 36, 36, 36],  // C1 para Am
  style="standard"
)

Estilos de bass:

  • "standard" - Bajo ritmico clasico
  • "melodic" - Bajo con movimiento melodico
  • "staccato" - Bajo cortado y percusivo
  • "slides" - Bajo con slides entre notas

Paso 3.5: Generar progresion de acordes

Command: generate_chords_clip(
  track_index=2,
  clip_index=0,
  bars=4,
  progression="i-v-vi-iv",
  key="Am"
)

Progresiones disponibles:

  • "i-v-vi-iv" - Progresion clasica menor (Am-Em-F-Dm)
  • "i-iv-v" - Blues menor (Am-Dm-Em)
  • "i-vi-iv-v" - Progresion de 50s menor (Am-F-Dm-Em)
  • "i-v-i-v" - Alternancia simple (Am-Em-Am-Em)
  • "i-iv-i-v" - Variacion (Am-Dm-Am-Em)

Paso 3.6: Generar melodia

Command: generate_melody_clip(
  track_index=3,
  clip_index=0,
  bars=4,
  scale="minor",
  density="medium"
)

Escalas disponibles:

  • "minor" - Escala menor natural
  • "major" - Escala mayor
  • "harmonic_minor" - Menor armonica
  • "pentatonic" - Pentatonica menor

Densidades:

  • "sparse" - Pocas notas, espacio entre ellas
  • "medium" - Densidad balanceada
  • "dense" - Muchas notas, linea ocupada

Paso 3.7: Humanizar pistas

Command: apply_human_feel(track_index=0, intensity=0.3)  // Drums: sutil
Command: apply_human_feel(track_index=3, intensity=0.5)  // Melody: moderado

Paso 3.8: Aniadir fills de percusion

Command: add_percussion_fills(
  track_index=0,
  positions=[7, 15, 23, 31]  // Fills cada 8 compases
)

Opcion C: Generacion desde Configuracion JSON

Command: generate_track_from_config(track_config_json='{
  "type": "drums",
  "pattern": "dembow",
  "bars": 8,
  "name": "Drums Main"
}')

Opcion D: Generacion de Secciones

Command: generate_section(section_config_json='{
  "type": "verse",
  "bars": 16,
  "elements": ["drums", "bass", "chords"]
}', start_bar=0)

Fase 4: Verificacion de Calidad

Objetivo: Verificar y corregir problemas de calidad en la produccion.

Paso 4.1: Verificacion completa

Command: full_quality_check()
Expected: {
  "status": "passed" | "issues_found",
  "checks": [
    {"name": "volume_levels", "passed": true},
    {"name": "frequency_balance", "passed": true},
    {"name": "stereo_image", "passed": false, "issue": "..."},
    {"name": "phase_coherence", "passed": true},
    {"name": "dynamic_range", "passed": true},
    ...
  ],
  "issues_count": N,
  "warnings_count": N
}

Paso 4.2: Corregir problemas detectados

Command: fix_quality_issues(issues=[])  // [] = arreglar todos
Expected: {
  "issues_fixed": N,
  "details": [...]
}

Paso 4.3: Validacion final

Command: validate_project()
Expected: {
  "is_valid": true,
  "issues": [],
  "warnings": [...],
  "passed_checks": [...],
  "score": N
}

Paso 4.4: Obtener sugerencias

Command: suggest_improvements()
Expected: {
  "suggestions": [
    {"category": "mixing", "suggestion": "...", "priority": "high"},
    ...
  ],
  "priority": "medium",
  "estimated_impact": "medium"
}

Fase 5: Export Final

Objetivo: Exportar la produccion en los formatos necesarios.

Paso 5.1: Renderizar stems individuales

Command: render_stems(output_dir="C:\\Users\\ren\\Desktop\\stems\\mi_track\\")
Expected: {
  "output_dir": "C:\\Users\\ren\\Desktop\\stems\\mi_track\\",
  "stems_rendered": [
    "drums.wav",
    "bass.wav",
    "chords.wav",
    "melody.wav",
    "fx.wav"
  ],
  "format": "wav",
  "sample_rate": 44100,
  "bit_depth": 24
}

Paso 5.2: Renderizar mix completo

Command: render_full_mix(output_path="C:\\Users\\ren\\Desktop\\mi_track_master.wav")
Expected: {
  "output_path": "C:\\Users\\ren\\Desktop\\mi_track_master.wav",
  "duration": "3:45",
  "format": "wav",
  "sample_rate": 44100,
  "bit_depth": 24
}

Paso 5.3: Crear version instrumental

Command: render_instrumental(output_path="C:\\Users\\ren\\Desktop\\mi_track_instrumental.wav")
Expected: {
  "output_path": "C:\\Users\\ren\\Desktop\\mi_track_instrumental.wav",
  ...
}

Paso 5.4: Crear version para radio

Command: create_radio_edit(output_path="C:\\Users\\ren\\Desktop\\mi_track_radio.wav")
Expected: {
  "output_path": "C:\\Users\\ren\\Desktop\\mi_track_radio.wav",
  "duration": "3:00",
  "changes": ["intro shortened", "chorus moved earlier"]
}

Paso 5.5: Crear version para DJ

Command: create_dj_edit(output_path="C:\\Users\\ren\\Desktop\\mi_track_dj.wav")
Expected: {
  "output_path": "C:\\Users\\ren\\Desktop\\mi_track_dj.wav",
  "duration": "5:30",
  "changes": ["extended intro", "extended outro", "cue points added"]
}

Paso 5.6: Export general del proyecto

Command: export_project(
  path="C:\\Users\\ren\\Desktop\\mi_track_export.wav",
  format="wav"
)

Ejemplo Completo Paso a Paso

A continuacion se muestra una sesion completa de produccion con comandos reales:

# ===== FASE 1: VERIFICACION Y ANALISIS =====

# 1. Verificar estado del sistema
health_check()
→ {"score": "5/5", "status": "HEALTHY", ...}

# 2. Ver estado actual
get_session_info()
→ {"tempo": 120, "num_tracks": 0, "num_scenes": 0, ...}

# 3. Analizar libreria (si no se ha hecho antes)
analyze_library(force_reanalyze=False)
→ {"total_analyzed": 247, "cache_file": "..."}

# 4. Obtener perfil de sonido
get_user_sound_profile()
→ {"preferred_bpm_range": "90-100", "preferred_key": "Am", ...}

# ===== FASE 2: SELECCION DE SAMPLES =====

# 5. Obtener samples recomendados para kick
get_recommended_samples(role="kick", count=5)
→ {"role": "kick", "samples": [...]}

# 6. Navegar libreria para snare
browse_library(role="snare", bpm_min=90, bpm_max=100)
→ {"total": 12, "samples": [...]}

# 7. Seleccion completa
select_samples_for_genre(genre="reggaeton", key="Am", bpm=95)
→ {"genre": "reggaeton", "drums": {"kick": "...", ...}, ...}

# ===== FASE 3: PRODUCCION =====

# 8. Configurar tempo
set_tempo(tempo=95)
→ {"tempo": 95}

# 9. Pipeline completo de produccion
produce_reggaeton(bpm=95, key="Am", style="classic", structure="verse-chorus")
→ {
    "production_type": "reggaeton",
    "bpm": 95,
    "key": "Am",
    "style": "classic",
    "structure": "verse-chorus",
    "tracks_created": ["Drums", "Bass", "Chords", "Melody", "FX"],
    "clips_generated": [...],
    "duration_bars": 64
  }

# 10. Humanizar drums
apply_human_feel(track_index=0, intensity=0.3)
→ {"track_index": 0, "intensity": 0.3, "notes_affected": 64, ...}

# 11. Aniadir fills
add_percussion_fills(track_index=0, positions=[7, 15, 23, 31])
→ {"track_index": 0, "fills_added": 4, ...}

# ===== FASE 4: MEZCLA =====

# 12. Crear bus de drums
create_bus_track(bus_type="Drums")
→ {"bus_type": "Drums", "track_index": N}

# 13. Rutear drums al bus
route_track_to_bus(track_index=0, bus_name="Drums")
→ {"track_index": 0, "bus_name": "Drums"}

# 14. Configurar EQ en drums
configure_eq(track_index=0, preset="kick_boost")
→ {"track_index": 0, "preset": "kick_boost", ...}

# 15. Configurar compresor en bass
configure_compressor(track_index=1, threshold=-20.0, ratio=4.0)
→ {"track_index": 1, "threshold": -20.0, "ratio": 4.0, ...}

# 16. Sidechain: bass duckeado por kick
setup_sidechain(source_track=0, target_track=1, amount=0.5)
→ {"source_track": 0, "target_track": 1, "amount": 0.5}

# 17. Ganancia automatica
auto_gain_staging()
→ {"tracks_adjusted": N, "adjustments": [...], "headroom_ok": true}

# 18. Cadena de mastering
apply_master_chain(preset="reggaeton_streaming")
→ {"preset": "reggaeton_streaming", "devices_added": [...], ...}

# ===== FASE 5: VERIFICACION =====

# 19. Verificacion de calidad
full_quality_check()
→ {"status": "passed", "issues_count": 0, ...}

# 20. Validacion final
validate_project()
→ {"is_valid": true, "score": 92, ...}

# ===== FASE 6: EXPORT =====

# 21. Renderizar stems
render_stems(output_dir="C:\\Users\\ren\\Desktop\\stems\\reggaeton_95bpm_am\\")
→ {"stems_rendered": ["drums.wav", "bass.wav", ...], ...}

# 22. Renderizar mix final
render_full_mix(output_path="C:\\Users\\ren\\Desktop\\reggaeton_95bpm_am_master.wav")
→ {"output_path": "...", "duration": "3:45", ...}

# 23. Version radio
create_radio_edit(output_path="C:\\Users\\ren\\Desktop\\reggaeton_95bpm_am_radio.wav")
→ {"duration": "3:00", ...}

# 24. Version DJ
create_dj_edit(output_path="C:\\Users\\ren\\Desktop\\reggaeton_95bpm_am_dj.wav")
→ {"duration": "5:30", ...}

Variantes de Estilo

Reggaeton Clasico (2000s)

produce_reggaeton(bpm=95, key="Am", style="classic", structure="verse-chorus")
  • BPM: 90-98
  • Clave: Am, Dm, Em comunes
  • Estructura: verso-estribillo
  • Caracteristicas: dembow limpio, bass sub, acordes simples

Dembow Puro

produce_reggaeton(bpm=100, key="Dm", style="dembow", structure="intro-drop")
  • BPM: 98-105
  • Enfocado en el ritmo dembow
  • Bass pesado y presente
  • Menos elementos melodicos

Perreo Intenso

produce_reggaeton(bpm=92, key="Em", style="perreo", structure="full")
  • BPM: 88-95 (mas lento, mas pesado)
  • Bass distorsionado
  • Acordes oscuros
  • Estructura completa

Moombahton

produce_reggaeton(bpm=108, key="Gm", style="moombahton", structure="verse-chorus")
  • BPM: 105-112
  • Mas melodico y harmonico
  • Influencia de house music
  • Acordes mas complejos

Produccion en Lote

Para producir multiples tracks con variaciones automaticas:

Command: batch_produce(count=3, style="classic", bpm_range="90-100")
Expected: {
  "batch_size": 3,
  "style": "classic",
  "bpm_range": "90-100",
  "productions": [
    {"index": 1, "bpm": 93, "key": "Am", "tracks": 5},
    {"index": 2, "bpm": 97, "key": "Dm", "tracks": 5},
    {"index": 3, "bpm": 95, "key": "Em", "tracks": 5}
  ]
}

Parametros:

  • count: Numero de canciones (1-10)
  • style: Estilo de produccion
  • bpm_range: Rango de BPM en formato "min-max"

Produccion desde Referencia

Para producir basado en una pista de referencia existente:

Paso 1: Verificar que el archivo de referencia existe

# Asegurarse de que el archivo existe en la ruta especificada

Paso 2: Generar desde referencia

Command: produce_from_reference(
  audio_path="C:\\Users\\ren\\Desktop\\reggaeton_referencia.mp3"
)
Expected: {
  "reference": "C:\\Users\\ren\\Desktop\\reggaeton_referencia.mp3",
  "production_type": "from_reference",
  "matched_samples": [...],
  "similarity_score": 0.85,
  "tracks_created": [...]
}

Paso 3: Generar desde referencia (alternativa con pipeline completo)

Command: generate_from_reference(
  reference_audio_path="C:\\Users\\ren\\Desktop\\reggaeton_referencia.mp3"
)
Expected: {
  "reference": "...",
  "tracks": [...],
  "matched_samples": [...],
  "similarity_scores": {...}
}

El sistema analiza la referencia, encuentra samples similares en la libreria, y genera una produccion que coincide con las caracteristicas sonicAs de la referencia.


Consejos de Produccion

  1. Siempre empezar con health_check() - Si el sistema no esta sano, nada funcionara correctamente.

  2. Analizar la libreria una sola vez - Los resultados se cachean. Solo usar force_reanalyze=True si se aniadieron samples nuevos.

  3. Usar produce_reggaeton() para produccion rapida - Es el pipeline completo automatico.

  4. Humanizar despues de generar - Las notas MIDI generadas son perfectas; aplicar apply_human_feel() con intensidad 0.2-0.5 para naturalidad.

  5. Sidechain es esencial en reggaeton - El bass debe duckear con el kick para evitar conflicto de frecuencias graves.

  6. Verificar calidad antes de exportar - full_quality_check() detecta problemas que pueden arruinar el mix final.

  7. Exportar stems para mezcla externa - Permite ajustes finos en un DAW externo o con un ingeniero de mezcla.