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
This commit is contained in:
236
docs/skill_produccion_audio.md
Normal file
236
docs/skill_produccion_audio.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user