- Add 5 new MCP tools to server.py: * create_riser (T031) - Pre-drop buildup effect * create_downlifter (T032) - Post-drop energy release * create_impact (T033) - Hit, crash, sub_drop, noise impacts * create_silence (T034) - Break/silence effects * create_fx_section (T035) - Complete FX sections - Add 5 handlers to __init__.py for Remote Script execution - Update skill_produccion_audio.md with FX tools documentation All tools exposed and ready for professional FX generation. Closes Agente 1 of 20 - FX Creator implementation
294 lines
8.0 KiB
Markdown
294 lines
8.0 KiB
Markdown
# Skill: Producción Senior de Audio en Ableton Live
|
|
|
|
## Descripción
|
|
Flujo profesional completo para producción de pistas de audio en Ableton Live usando inyección automática en Arrangement View con selección inteligente de samples.
|
|
|
|
## Casos de Uso
|
|
- Producción de beats reggaetón con samples de librería
|
|
- Creación de drum patterns (kick, snare, hi-hat, perc)
|
|
- Layering de múltiples tracks de audio
|
|
- Composición timeline-based sin Session View
|
|
|
|
## Flujo de Producción Automático
|
|
|
|
### Paso 1: Verificar Sistema
|
|
```python
|
|
# Health check antes de empezar
|
|
ableton-live-mcp_health_check
|
|
# Resultado esperado: 5/5 checks OK
|
|
```
|
|
|
|
### Paso 2: Escaneo de Librería (Opcional)
|
|
```python
|
|
# Escanear samples disponibles
|
|
ableton-live-mcp_scan_library
|
|
ableton-live-mcp_scan_library --subfolder reggaeton/kick
|
|
ableton-live-mcp_scan_library --subfolder reggaeton/snare
|
|
```
|
|
|
|
### Paso 3: Crear Tracks de Audio
|
|
```python
|
|
# Crear tracks específicos para cada elemento
|
|
ableton-live-mcp_create_audio_track # Kick
|
|
ableton-live-mcp_create_audio_track # Snare
|
|
ableton-live-mcp_create_audio_track # Hi-Hat
|
|
ableton-live-mcp_create_audio_track # Bass
|
|
```
|
|
|
|
### Paso 4: Inyección Senior de Audio
|
|
|
|
#### Patrón Único (1 clip)
|
|
```python
|
|
ableton-live-mcp_create_arrangement_audio_pattern(
|
|
track_index=3,
|
|
file_path="C:\\...\\libreria\\reggaeton\\kick\\kick 1.wav",
|
|
positions=[0],
|
|
name="IntroKick"
|
|
)
|
|
```
|
|
|
|
#### Patrón de 4 Tiempos (4 clips)
|
|
```python
|
|
ableton-live-mcp_create_arrangement_audio_pattern(
|
|
track_index=3,
|
|
file_path="C:\\...\\libreria\\reggaeton\\kick\\kick 1.wav",
|
|
positions=[0, 4, 8, 12],
|
|
name="KickLoop"
|
|
)
|
|
```
|
|
|
|
#### Patrón Completo (16 compases)
|
|
```python
|
|
ableton-live-mcp_create_arrangement_audio_pattern(
|
|
track_index=3,
|
|
file_path="C:\\...\\libreria\\reggaeton\\kick\\kick 1.wav",
|
|
positions=[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60],
|
|
name="FullKick"
|
|
)
|
|
```
|
|
|
|
### Paso 5: FX y Transiciones Profesionales (T031-T035)
|
|
|
|
#### Crear Riser/Buildup (T031)
|
|
```python
|
|
# Riser de 8 compases antes del drop
|
|
ableton-live-mcp_create_riser(
|
|
track_index=7,
|
|
start_bar=24, # Empezar en compás 24
|
|
duration=8, # 8 compases de duración
|
|
intensity=0.8, # Intensidad 80%
|
|
pitch_min=36, # C2
|
|
pitch_max=84 # C6
|
|
)
|
|
```
|
|
|
|
#### Crear Downlifter (T032)
|
|
```python
|
|
# Downlifter post-drop
|
|
ableton-live-mcp_create_downlifter(
|
|
track_index=7,
|
|
start_bar=32, # Después del drop
|
|
duration=4,
|
|
intensity=0.7
|
|
)
|
|
```
|
|
|
|
#### Crear Impact FX (T033)
|
|
```python
|
|
# Impact en el drop
|
|
ableton-live-mcp_create_impact(
|
|
track_index=7,
|
|
position=32, # Compás 32
|
|
intensity=1.0,
|
|
impact_type="hit" # Options: "hit", "crash", "sub_drop", "noise"
|
|
)
|
|
```
|
|
|
|
#### Crear Sección FX Completa (T035)
|
|
```python
|
|
# Sección completa con riser + impact
|
|
ableton-live-mcp_create_fx_section(
|
|
section_type="pre_drop", # "pre_drop", "post_drop", "transition", "build"
|
|
start_bar=24,
|
|
duration=8
|
|
)
|
|
```
|
|
|
|
#### Silence/Break Effect (T034)
|
|
```python
|
|
# Break de 1 compás para tensión
|
|
ableton-live-mcp_create_silence(
|
|
track_index=0,
|
|
start_bar=31,
|
|
duration=1
|
|
)
|
|
```
|
|
|
|
### Paso 6: Verificación Visual
|
|
```python
|
|
# Confirmar clips en Arrangement View
|
|
ableton-live-mcp_get_arrangement_status
|
|
ableton-live-mcp_get_arrangement_clips
|
|
```
|
|
|
|
## Arquitectura de Inyección (5 Métodos Automáticos)
|
|
|
|
El sistema intenta automáticamente los siguientes métodos en orden:
|
|
|
|
```
|
|
Método 1: track.insert_arrangement_clip() [Live 12+ - Directo]
|
|
Método 2: track.create_audio_clip() [Live 11+ - Directo]
|
|
Método 3: arrangement_clips.add_new_clip() [Live 12+ - API Arrangement]
|
|
Método 4: Session → duplicate_clip_to_arrangement [Legacy]
|
|
Método 5: Session → Recording [Universal Fallback]
|
|
```
|
|
|
|
**Zero configuración manual** - El sistema elige automáticamente el mejor método disponible.
|
|
|
|
## Ejemplos de Producción
|
|
|
|
### Ejemplo 1: Drum Kit Básico (Kick + Snare)
|
|
```python
|
|
# Kick en track 3
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 3 \
|
|
--file_path "C:\\...\\reggaeton\\kick\\kick 1.wav" \
|
|
--positions "[0, 4, 8, 12]" \
|
|
--name "Kick"
|
|
|
|
# Snare en track 4
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 4 \
|
|
--file_path "C:\\...\\reggaeton\\snare\\snare 1.wav" \
|
|
--positions "[2, 6, 10, 14]" \
|
|
--name "Snare"
|
|
```
|
|
|
|
### Ejemplo 2: Pattern Completo (4/4 Time)
|
|
```python
|
|
# Kick cada compás
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 3 \
|
|
--file_path "C:\\...\\kick\\kick 1.wav" \
|
|
--positions "[0, 4, 8, 12, 16, 20, 24, 28]"
|
|
|
|
# Snare en 2 y 4
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 4 \
|
|
--file_path "C:\\...\\snare\\snare 1.wav" \
|
|
--positions "[4, 12, 20, 28]"
|
|
|
|
# Hi-hat cada medio compás
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 5 \
|
|
--file_path "C:\\...\\hi-hat\\hihat 1.wav" \
|
|
--positions "[2, 6, 10, 14, 18, 22, 26, 30]"
|
|
```
|
|
|
|
### Ejemplo 3: Variaciones de Intensidad
|
|
```python
|
|
# Intro - Kick solo
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 3 \
|
|
--file_path "...\\kick 1.wav" \
|
|
--positions "[0, 4]" \
|
|
--name "Intro"
|
|
|
|
# Verse - Full drums
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 3 \
|
|
--file_path "...\\kick 1.wav" \
|
|
--positions "[8, 12, 16, 20, 24, 28, 32, 36]" \
|
|
--name "Verse"
|
|
|
|
# Chorus - Full + extras
|
|
ableton-live-mcp_create_arrangement_audio_pattern \
|
|
--track_index 3 \
|
|
--file_path "...\\kick 2.wav" \
|
|
--positions "[40, 44, 48, 52, 56, 60]" \
|
|
--name "Chorus"
|
|
```
|
|
|
|
## Formatos de Posiciones
|
|
|
|
### Compases a Beats (Automático)
|
|
- 0 = Compás 1, beat 1
|
|
- 4 = Compás 2, beat 1
|
|
- 8 = Compás 3, beat 1
|
|
- 12 = Compás 4, beat 1
|
|
|
|
### Sincronización por Tempo
|
|
El sistema automáticamente:
|
|
1. Convierte posiciones en beats según tempo del proyecto
|
|
2. Sincroniza con grid de Ableton
|
|
3. Aplica warping si es necesario
|
|
|
|
## Resolución de Problemas
|
|
|
|
### "created_count: 0"
|
|
**Causa:** Ningún método funcionó
|
|
**Solución:** Verificar:
|
|
- Archivo existe y es formato soportado (WAV, AIFF, MP3)
|
|
- Track index es válido
|
|
- Track es audio track (no MIDI)
|
|
|
|
### Clips muy cortos
|
|
**Causa:** Sample no tiene duración definida
|
|
**Solución:** Usar samples WAV con duración completa, no one-shots cortos
|
|
|
|
### Posiciones incorrectas
|
|
**Causa:** Usando Método 5 (recording fallback)
|
|
**Solución:** Normal, tiene ±1 beat de tolerancia. Para precisión absoluta, reiniciar Ableton para activar Métodos 1-3.
|
|
|
|
## Referencia Técnica
|
|
|
|
### Métodos del Live Object Model
|
|
- `track.insert_arrangement_clip(path, start_beat, end_beat)` - Live 12+
|
|
- `track.create_audio_clip(path, position)` - Live 11+
|
|
- `arrangement_clips.add_new_clip(start, end)` - Live 12+
|
|
- `song.duplicate_clip_to_arrangement(track, slot, pos)` - Legacy
|
|
|
|
### Formatos Soportados
|
|
- WAV (recomendado)
|
|
- AIFF
|
|
- MP3
|
|
- FLAC
|
|
|
|
### Tracks por Defecto
|
|
- Track 0-1: MIDI (reservados)
|
|
- Track 2+: Audio (disponibles para inyección)
|
|
|
|
## Anti-Patrones de Producción
|
|
|
|
❌ NO cargar samples manualmente en Session View antes de inyectar
|
|
❌ NO usar grabación manual cuando existe inyección automática
|
|
❌ NO duplicar clips manualmente con Ctrl+D
|
|
❌ NO ajustar posiciones manualmente después de inyección
|
|
|
|
## Mejores Prácticas
|
|
|
|
✅ SIEMPRE verificar `ableton-live-mcp_health_check` antes de empezar
|
|
✅ USAR rutas absolutas para archivos de audio
|
|
✅ PLANIFICAR posiciones en beats (múltiplos de 4 para compases)
|
|
✅ NOMBRAR clips descriptivamente (`"KickVerse"`, `"SnareFill"`)
|
|
✅ VERIFICAR en Arrangement View después de inyección
|
|
|
|
## Integración con Workflow Completo
|
|
|
|
```python
|
|
# Paso 1: Reinicio (usar skill_reinicio_ableton.md)
|
|
# Paso 2: Producción (usar esta skill)
|
|
# Paso 3: Mezcla (aplicar EQ/compresión)
|
|
# Paso 4: Master (exportar)
|
|
```
|
|
|
|
---
|
|
|
|
## Historial
|
|
- **v1.0** (2026-04-12): Skill de producción senior con 5 métodos de inyección
|
|
- **Autor:** AbletonMCP_AI Senior Architecture Team
|
|
|
|
## Relacionado
|
|
- `skill_reinicio_ableton.md` - Proceso de reinicio correcto
|
|
- `../README.md` - Documentación general del proyecto
|