# 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](#vista-general-del-pipeline) 2. [Fase 1: Analisis de Libreria](#fase-1-analisis-de-libreria) 3. [Fase 2: Seleccion de Samples](#fase-2-seleccion-de-samples) 4. [Fase 3: Produccion Completa](#fase-3-produccion-completa) 5. [Fase 4: Verificacion de Calidad](#fase-4-verificacion-de-calidad) 6. [Fase 5: Export Final](#fase-5-export-final) 7. [Ejemplo Completo Paso a Paso](#ejemplo-completo-paso-a-paso) 8. [Variantes de Estilo](#variantes-de-estilo) 9. [Produccion en Lote](#produccion-en-lote) 10. [Produccion desde Referencia](#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.