- 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>
108 lines
3.8 KiB
Python
108 lines
3.8 KiB
Python
#!/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()
|