- 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
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
- Vista General del Pipeline
- Fase 1: Analisis de Libreria
- Fase 2: Seleccion de Samples
- Fase 3: Produccion Completa
- Fase 4: Verificacion de Calidad
- Fase 5: Export Final
- Ejemplo Completo Paso a Paso
- Variantes de Estilo
- Produccion en Lote
- 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- Bombosnare- Cajahat_closed- Hi-hat cerradohat_open- Hi-hat abiertoclap- Palmaperc- Percusionbass- Bajosynths- Sintetizadoresfx- 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:
- Creacion de pistas (drums, bass, chords, melody, fx)
- Generacion de clips MIDI para cada elemento
- Carga de samples seleccionados
- Configuracion inicial de mezcla
- 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 produccionbpm_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
-
Siempre empezar con
health_check()- Si el sistema no esta sano, nada funcionara correctamente. -
Analizar la libreria una sola vez - Los resultados se cachean. Solo usar
force_reanalyze=Truesi se aniadieron samples nuevos. -
Usar
produce_reggaeton()para produccion rapida - Es el pipeline completo automatico. -
Humanizar despues de generar - Las notas MIDI generadas son perfectas; aplicar
apply_human_feel()con intensidad 0.2-0.5 para naturalidad. -
Sidechain es esencial en reggaeton - El bass debe duckear con el kick para evitar conflicto de frecuencias graves.
-
Verificar calidad antes de exportar -
full_quality_check()detecta problemas que pueden arruinar el mix final. -
Exportar stems para mezcla externa - Permite ajustes finos en un DAW externo o con un ingeniero de mezcla.