- 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
237 lines
6.8 KiB
Markdown
237 lines
6.8 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: 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
|