ableton-holland-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ableton-holland-mcpcapture audio from Ableton and analyze the key and tempo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ableton Holland MCP
Capture audio en direct depuis Ableton Live via VB-Cable et analyse musicale automatique avec librosa.
Architecture
┌─────────────────┐ Voicemeeter ┌──────────────┐
│ Ableton Live │────Virtual Input──▶│ Voicemeeter │
│ (audio engine) │ │ (mixer) │
└─────────────────┘ └──────┬───────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌────────────┐ ┌──────────────┐ ┌──────────────┐
│ Enceintes │ │ CABLE Input │ │ Casque / │
│ (Intel) │ │ (VB-Cable) │ │ Focusrite │
│ monitoring│ │ (capture) │ │ (optionnel) │
└────────────┘ └──────┬───────┘ └──────────────┘
│
▼
┌──────────────┐
│ CABLE Output │
│ (sounddevice)│
└──────┬───────┘
│
┌─────────┴─────────┐
▼ ▼
┌────────────┐ ┌──────────────┐
│ MCP server │ │ Dashboard │
│ (opencode) │ │ (Tkinter) │
└──────┬─────┘ └──────┬───────┘
│ │
▼ ▼
┌──────────────────────────┐
│ librosa (analyse) │
└────────────┬─────────────┘
▼
┌──────────────────────┐
│ data/analyses/ │
│ (.wav + .csv) │
└──────────────────────┘Related MCP server: io.github.peterkolbe/ableton-for-ai
Prérequis
| Logiciel | Rôle | |---|---|---| | Ableton Live 11+ | Station audio | | VB-Cable | Routage audio virtuel (capture) | | Voicemeeter (Vanilla ou Banana) | Mixeur virtuel (monitoring + routage) | | Python 3.12+ | Moteur d'analyse | | opencode | CLI agent MCP |
Installation
1. VB-Cable
Télécharger depuis vb-audio.com/Cable
Lancer
VBCABLE_Setup.exeen administrateurRedémarrer Windows
2. Voicemeeter
Télécharger depuis vb-audio.com/Voicemeeter
Lancer
VoicemeeterSetup.exeen administrateurRedémarrer Windows
3. Python
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt4. Configuration Voicemeeter
Lancer Voicemeeter (démarrer menu ou
C:\Program Files (x86)\VB\Voicemeeter\Voicemeeter.exe)Dans Hardware Out (colonne de droite) :
A1 → choisir tes enceintes (Intel Display Audio, Focusrite...)
A2 → choisir CABLE Input (VB-Audio Virtual Cable)
Dans Virtual Input (colonne de gauche) → laisser Voicemeeter VAIO par défaut
Régler les niveaux (A1 = monitoring, A2 = capture)
5. Configuration Ableton Live
Options → Preferences → Audio
Driver Type: MME / DirectX
Audio Output Device: Voicemeeter Virtual Audio Cable (ou Voicemeeter VAIO)
Audio Input Device: CABLE Output (VB-Audio Virtual Cable) (optionnel)
Activer "In/Out" dans la vue Session
6. AbletonMCP Remote Script
Le Remote Script AbletonMCP_Remote_Script.py (à la racine du projet) permet à ableton-mcp de communiquer avec Ableton Live via socket.
Installation
Copie
AbletonMCP_Remote_Script.pyet renommer dans le dossier des Remote Scripts d'Ableton :
--> "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCP_init_.py"
copy /Y "C:\Users\admin\dev\ableton-holland-mcp\AbletonMCP_Remote_Script.py" "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCP_init_.py"
copy /Y "ableton-mcp-extended\AbletonMCP_Remote_Script_init.py" "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCPExtended_init.py"
Lance Ableton Live → Options → Preferences → Link, Tempo & MIDI
Dans Control Surface, sélectionne "AbletonMCP"
Mets Input et Output sur "None"
Redémarre Ableton
Le script se trouve aussi dans le dépôt GitHub original : ahujasid/ableton-mcp/AbletonMCP_Remote_Script
7. Configuration opencode
{
"mcp": {
"ableton-full": {
"type": "local",
"command": [".venv/Scripts/python", "ableton_full_mcp_server.py"],
"enabled": true
}
}
}Le serveur ableton-full (unifié) remplace les deux anciens serveurs (ableton-mcp + music-analysis). Un seul process, outils atomiques comme capture_at_position.
Outils MCP disponibles (128 tools)
Tous les indices sont 0-based (track_index=0 = première piste après Master).
Session / Transport
Tool | Description |
| Tempo, signature, track count, playback state |
| Changer le tempo |
| Démarrer / arrêter |
| Seek + play atomique (Live reset le temps au |
| Positionner le playhead |
| Métronome on/off |
| Record on/off |
| Tempo nudge |
| Signature rythmique |
| Vue Arrangement |
Pistes
Tool | Description |
| Nouvelle piste MIDI (fin de liste) |
| Renommer |
| Supprimer par index ou nom |
| Dupliquer |
| Sélectionner dans l'UI |
| Nom, devices, clip slots, volume, pan |
| Couleur (0–255) |
| Vérifier si supression possible |
Clips Session
Tool | Description |
| Nouveau clip MIDI |
| Importer audio (Live 12.0.5+) |
| Ajouter notes MIDI |
| Lire notes MIDI |
| Nommer |
| Lancer / arrêter |
| Dupliquer |
| Quantifier |
| Supprimer |
| Couleur (0–255) |
Arrangement
Tool | Description |
| Lister clips |
| Lire notes MIDI |
| Écrire notes MIDI |
| Supprimer clip |
| Renommer |
| Copier session → arrangement |
| Copier session → arrangement (bar/beat) |
| Créer clip MIDI arrangement |
| Placer fichier audio |
| Boucle arrangement |
| Gain clip audio (dB) |
| Pitch (semitones/cents) |
| Warp (0=beats..5=complex-pro) |
| Marqueurs (beats) |
Mixer
Tool | Description |
| Volume (0.85 = 0 dB) |
| Volume + pan actuels |
| Pan |
| Solo / mute |
| Envois |
| Monitoring |
| Crossfader |
| Groove global |
Master
Tool | Description |
| Infos master (volume, pan, devices) |
| Volume master |
| Pan master |
| Paramètres d'un device master |
| Modifier paramètre master |
| Charger effet sur master |
Browser / Instruments
Tool | Description |
| Arborescence complète |
| Catégories |
| Items d'un chemin |
| Un item spécifique |
| Items à un chemin |
| Charger instrument/effet par URI |
| Charger plugin VST/AU par nom |
| Lister plugins externes |
| Charger drum rack + kit |
Devices
Tool | Description |
| Lire tous les paramètres |
| Modifier un paramètre |
| Supprimer un device |
| Activer / bypasser |
| Preset suivant/précédent |
| Chaînes dans un rack |
| Pads remplis dans un Drum Rack |
Cue Points
Tool | Description |
| Lister tous les cue points |
| Créer un cue point |
| Supprimer un cue point |
| Sauter au suivant/précédent/par nom |
Vue
Tool | Description |
| Changer de vue (Arranger, Session, Detail, Browser...) |
| Zoom, scroll, follow, collapse/expand |
Automation / Enveloppes
Tool | Description |
| Lire envelope |
| Écrire courbe d'automation |
| Créer / effacer enveloppes |
| Ajouter un point |
| Effacer enveloppe |
| Diagnostic exhaustif |
| Tests automatisés |
| Dump complet état |
| Test signatures |
Routing
Tool | Description |
| Routing entrée/sortie |
| Source d'entrée |
| Destination sortie |
Projet / Système
Tool | Description |
| Sauvegarder (non dispo Live 12 Lite) |
| Annuler / rétablir |
| Freeze / flatten |
| Créer / lancer une scene |
| CPU average + peak |
| Version Live + build ID |
| Tempo follower |
| Control surfaces actives |
| Message dans la barre d'état |
| Hot-reload du Remote Script |
Capture & Analyse Audio
Tool | Description |
| Capture + analyse complète en un appel |
| Charger fichier audio |
| Tout-en-un : key, energy, spectral, tempo, tuning |
| RMS, peak, dynamic range |
| Centroid, rolloff, bandwidth, ZCR |
| Cents offset |
| Tonalité (Krumhansl-Kessler) |
| BPM |
| Durée secondes |
| Temps forts |
| Chromagram (12 notes) |
| Timbre / texture spectrale |
Structure du projet
ableton-holland-mcp/
├── data/
│ ├── tests/ # Fichiers audio de test (.wav, .mp3)
│ ├── analyses/ # Résultats d'analyse (.wav + .csv)
│ └── scripts/ # Scripts utilitaires
├── dashboard/
│ └── app.py # Interface graphique (Tkinter + matplotlib)
├── ableton_full_mcp_server.py # Serveur MCP UNIFIÉ (Ableton + analyse)
├── AbletonMCP_Remote_Script.py # Remote Script Ableton (à copier)
├── music_analysis_plus.py # Serveur analyse standalone (legacy)
├── ableton_mcp_server.py # Serveur Ableton standalone (legacy)
├── opencode.jsonc # Configuration MCP
├── requirements.txt # Dépendances Python
├── AGENTS.md
├── SPEC.md
├── .gitignore
└── README.mdÉcouter le monitoring audio
Quand Ableton envoie son audio vers VB-Cable → plus de son dans les enceintes. Solutions :
Méthode 1 : Windows "Listen to this device"
Panneau de configuration → Son → Enregistrement
Double-clic sur "CABLE Output (VB-Audio Virtual Cable)"
Onglet "Écouter" → cocher "Écouter ce périphérique"
Choisir Focusrite / enceintes dans la liste déroulante
Appliquer
Avantage : sans logiciel supplémentaire. Inconvénient : léger décalage (latence WDM).
Méthode 2 : Voicemeeter (recommandée)
Route l'audio d'Ableton vers plusieurs sorties simultanément.
Configuration
Lance Voicemeeter
Hardware Out (colonne de droite) :
A1 → enceintes (Intel Display Audio, Focusrite...)
A2 → CABLE Input (VB-Audio Virtual Cable)
Virtual Input → Ableton envoie sur Voicemeeter VAIO
Ajuste les volumes (A1 = ce que tu entends, A2 = niveau envoyé à la capture)
Routage final
Ableton → Voicemeeter VAIO → A1: Enceintes (monitoring)
→ A2: CABLE Input → CABLE Output → captureAvantage : monitoring temps réel, contrôle du mix, pas de latence supplémentaire. Remarque : la capture MCP continue d'écouter sur CABLE Output — inchangé.
Méthode 3 : Dashboard Python
Bouton Playback dans le dashboard après chaque capture :
python dashboard/app.pyMéthode 4 : Console Python / MCP
# Dans le dashboard
from dashboard.app import AudioAnalyzer
audio, sr = AudioAnalyzer.capture(device_id, duration)
AudioAnalyzer.save_audio(audio, sr, "mon_capture")
# Dans le serveur MCP
play_wav("data/analyses/mon_capture.wav")Dashboard graphique
Interface native Windows (Tkinter + matplotlib, zéro dépendance supplémentaire).
python dashboard/app.pyFonctionnalités
Section | Contrôle |
Périphérique | Menu déroulant pour choisir la source audio (CABLE Output, Focusrite...) |
Capture | Spinbox durée (1-60s) + bouton 🎤 Capturer |
Playback | Bouton 🔊 Playback pour réécouter la dernière capture |
Fichier | Parcourir → sélection fichier dans |
Visualisation | Chroma CQT (heatmap) + Waveform avec onsets (lignes rouges) |
Résultats | Durée, tempo BPM, nombre d'onsets |
Architecture du code
dashboard/app.py contient deux classes :
AudioAnalyzer— capture (sounddevice), analyse (librosa), sauvegarde (soundfile)Dashboard— interface Tkinter, appelleAudioAnalyzerdans un thread séparé
Prochaines étapes
Itération 3 — Monitoring temps réel avec Voicemeeter ✅
Installer et configurer Voicemeeter
Router Ableton → Voicemeeter → enceintes (monitoring) + CABLE Input (capture)
Valider la capture MCP inchangée
Documenter le setup final
Itération 4 — Analyse avancée
Détection de la tonalité / key detection (
librosa.feature.tonnetz)Analyse harmonique (accords)
Détection de genre / voix
Itération 5 — Améliorations pipeline
Interface web Streamlit (dashboard plus riche, graphiques interactifs Plotly)
Streaming continu (capture + analyse en boucle, metronome visuel)
Whisper / transcription automatique des paroles (si voix)
Export des résultats en JSON structuré
A etudier
Customize Ableton Live with the Live API https://www.youtube.com/watch?v=Hfq-NXEhmzs
Ableton free packs https://www.ableton.com/en/packs/#?item_type=free
Future Explorations. Voir pour combiener avec un VCVRack MCP comme https://community.vcvrack.com/t/mcp-server-let-claude-cursor-build-and-control-your-rack-patches-live/25607
autre MCP ableton : https://github.com/adamjmurray/producer-pal#readme
Dépannage
"CABLE Output not found"
→ Vérifier que VB-Cable est installé et qu'Ableton n'est pas en mode ASIO
Capture silencieuse
→ Vérifier qu'Ableton joue bien sur la sortie "CABLE Input" → Vérifier que la piste n'est pas en mute/solo → Vérifier le volume Master
Timeout MCP
→ Le serveur utilise async def + await asyncio.sleep() pour la capture
→ Si timeout : réduire la durée de capture ou vérifier les logs du serveur
Device busy
→ Ableton est en mode ASIO. Passer en MME/DirectX dans les préférences Ableton
Voicemeeter ne s'affiche pas dans Ableton
→ Redémarrer Voicemeeter et/ou Ableton. Vérifier que le service Voicemeeter est lancé (icône dans la barre des tâches).
Pas de son dans les enceintes (Voicemeeter)
→ Vérifier que A1 est bien assigné à un périphérique physique dans Voicemeeter → Vérifier le niveau du slider A1 → Vérifier le bouton Mute sur la colonne Virtual Input
Capture silencieuse avec Voicemeeter
→ Vérifier que A2 pointe bien vers CABLE Input → Vérifier le niveau du slider A2 → Vérifier que VB-Cable est installé
Notes de version
Itération 5 (28 juin 2026) — Serveur unifié + capture atomique
Serveur unifié
ableton_full_mcp_server.py(remplaceableton-mcp+music-analysis)capture_at_position(position, duration)— stop → switch → play at position → capture → stop → loadcapture_and_analyze(position, duration)— capture + analyse en un appelFix
start_playback_at:start_playing()PUIScurrent_song_time = X(Live reset le temps au démarrage)Fix
load():np.mean(audio, axis=1)au lieu delibrosa.to_mono()(inversion canaux)Documentation mise à jour (README, AGENTS, SPEC)
Itération 4 (24 juin 2026) — Remote Script arrangement
Mise à jour du Remote Script Ableton (v1314 lignes) avec support Arrangement View
Remote Script copié à la racine du projet (
AbletonMCP_Remote_Script.py)Documentation de l'installation du Remote Script dans le README
Commandes arrangement :
switch_to_arrangement_view,duplicate_to_arrangement,set_arrangement_time,get_arrangement_clips
Itération 3 (24 juin 2026) — Monitoring temps réel
Voicemeeter installé et configuré (A1 = enceintes, A2 = CABLE Input)
Monitoring en temps réel sans latence supplémentaire
Documentation du routage Voicemeeter
Itération 2 (24 juin 2026) — Stabilisation
Capture sauvegardée dans
data/analyses/avec timestampDashboard graphique Tkinter (capture, analyse, visualisation, playback)
Documentation complète (README, requirements.txt, .gitignore)
Export WAV + CSV organisé dans
data/
Itération 1 (20 juin 2026) — Première version
Serveur MCP
music_analysis_plus.pyavec capture asyncAnalyse tempo, chroma CQT, MFCC, beats
Fix timeout MCP (
async def+await asyncio.sleep())
Licence
MIT
other mcp
human voice
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for Speech-to-Text
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Ableton Live that exposes the Live Object Model to LLMs, enabling natural language control of music production.3690 npm5MIT
- AlicenseAqualityCmaintenanceMCP server that bridges Ableton Live with AI models, enabling real-time project inspection and control such as track overview, device parameters, and audio analysis.12MIT
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.48-
- AlicenseBqualityBmaintenanceLocal MCP server for inspecting and controlling Ableton Live through a local HTTP bridge. Enables LLMs to perform production workflows like MIDI import, track editing, mixing, mastering, and export.5918 npmMIT