Initial commit: AbletonMCP-AI complete system

- MCP Server with audio fallback, sample management
- Song generator with bus routing
- Reference listener and audio resampler
- Vector-based sample search
- Master chain with limiter and calibration
- Fix: Audio fallback now works without M4L
- Fix: Full song detection in sample loader

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renato97
2026-03-28 22:53:10 -03:00
commit 6ec8663954
120 changed files with 59101 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
#!/usr/bin/env python
"""
Script para cargar samples en Ableton MCP AI
Este script guía al usuario para cargar samples manualmente o usa el browser
"""
import os
# Configuración de samples
SAMPLES_CONFIG = {
"kick": r"C:\Users\ren\embeddings\all_tracks\BBH - Primer Impacto - Kick 1.wav",
"clap": r"C:\Users\ren\embeddings\all_tracks\MT Clap & Snare Hit 05.wav",
"hat": r"C:\Users\ren\embeddings\all_tracks\BBH - Primer Impacto - Closed Hat 3.wav",
"bass": r"C:\Users\ren\embeddings\all_tracks\MT_Bass Loop 04 F 125.wav",
}
def generate_instrument_setup_guide():
"""Genera instrucciones detalladas para cargar samples"""
guide = """
╔══════════════════════════════════════════════════════════════════╗
║ CONFIGURACIÓN DE INSTRUMENTOS - HOUSE 90s ║
╚══════════════════════════════════════════════════════════════════╝
Para que suene tu track, necesitas cargar instrumentos en cada track MIDI.
🥁 TRACK 0 - KICK (Rojo):
1. Arrastra "Drum Rack" del browser al track
2. Arrastra tu sample de kick al pad C1 (nota 36)
3. Ajusta volumen a -3dB
👏 TRACK 1 - CLAP (Naranja):
1. Mismo Drum Rack o uno nuevo
2. Arrastra sample de clap/snare al pad D2 (nota 50)
3. Volumen a -6dB
🎩 TRACK 2 - HIHAT (Amarillo):
1. Drum Rack
2. Sample de closed hat al pad F#1 (nota 42)
3. Volumen a -12dB
🎸 TRACK 3 - BASS (Azul):
Opción A (Sampler):
1. Arrastra "Simpler" al track
2. Arrastra loop de bass (MT_Bass Loop 04 F 125.wav)
3. Ajusta para que C3 dispare el sample
Opción B (Synth):
1. Carga "Operator"
2. Preset "Sub Bass" o "Funky Bass"
3. Ajusta envolvente: Attack 5ms, Decay 200ms, Sustain 80%
🎹 TRACK 4 - CHORDS (Purpura):
1. Carga "Wavetable" o "Analog"
2. Preset "House Chords", "Chord Stab" o "Vintage Keys"
3. Añade reverb (Return A) al 20%
═══════════════════════════════════════════════════════════════════
📁 SAMPLES RECOMENDADOS DE TU LIBRERÍA:
Kick: BBH - Primer Impacto - Kick 1.wav
Clap: MT Clap & Snare Hit 05.wav
Hat: BBH - Primer Impacto - Closed Hat 3.wav
Bass: MT_Bass Loop 04 F 125.wav
═══════════════════════════════════════════════════════════════════
⚡ ATAJO RÁPIDO:
Si tienes Drum Rack presets guardados:
1. Busca en el browser: "Drums > Drum Rack"
2. Arrastra a cada track de drums
3. Los clips MIDI ya están programados y sonarán automáticamente
═══════════════════════════════════════════════════════════════════
"""
return guide
def verify_samples():
"""Verifica qué samples existen"""
samples_dir = r"C:\Users\ren\embeddings\all_tracks"
print("\n📂 Verificando samples en librería...")
print(f"Directorio: {samples_dir}")
print("-" * 50)
if not os.path.exists(samples_dir):
print("❌ Directorio no encontrado!")
return False
# Buscar archivos comunes
found = []
for f in os.listdir(samples_dir)[:20]: # Primeros 20
if f.endswith('.wav'):
found.append(f)
print(f"{len(found)} archivos WAV encontrados")
print("\nEjemplos:")
for f in found[:10]:
print(f" - {f}")
return True
if __name__ == "__main__":
print(generate_instrument_setup_guide())
verify_samples()