MPC to control Elektron machines (Digitakt 2, Digitone 2)
Project description
Elektron MCP
A Model Context Protocol (MCP) server that allows Claude and other MCP-compatible LLMs to interact with and control Elektron synthesizers via MIDI.
Features
- Complete MIDI control interface for the Elektron Digitone synthesizer
- Structured controllers for all Digitone sound engines:
- Wavetone (waveshaping synthesis)
- FM Tone (FM synthesis)
- FM Drum (percussive FM synthesis)
- Swarmer (unison/swarm synthesis)
- Comprehensive parameter control for:
- All filter types
- MultiMode
- Lowpass4
- Equalizer
- LegacyLpHp
- CombMinus
- CombPlus
- BaseWidth
- Amplitude and envelope settings
- Effects processing (delay, reverb, chorus, bit reduction, etc.)
- LFOs control
- All filter types
- MCP server exposing all synth parameters as tools for LLMs
- Type-safe parameter validation using Pydantic
- Modular architecture for easy extension to other Elektron devices
Demo
Watch Claude control the Elektron Digitone synthesizer in real-time:
Installation and Usage
Prerequisites
- Python 3.10+
- uv for package management
- An Elektron Digitone connected via USB
- Claude Desktop app (for full integration)
Installing Dependencies
uv is mandatory for this project so start by installing it:
For macOS:
brew install uv
For Windows:
Follow the instructions here
3. Installing with Claude Desktop
To use with Claude AI, add the MCP server configuration in Claude Desktop:
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
{
"mcpServers": {
"Digitone 2": {
"command": "uvx",
"args": ["elektron-mcp"]
}
}
}
Architecture
The library is designed with a clean, object-oriented architecture:
- Base Controllers: Common functionality abstracted into base classes
- Specialized Controllers: Dedicated controllers for each synth engine and module
- MCP Tools: Direct interface between LLMs and the synth's parameters
- MIDI Interface: Reliable communication with Digitone hardware
Implementation Details
This library uses:
- FastMCP: For exposing synth controls to LLMs
- Pydantic models: For data validation, serialization, and type safety
- mido: For MIDI communication
Use Cases
- Allow Claude and other LLMs to create and modify sounds on the Digitone
- Programmatically control Digitone parameters for automated sound design
- Bridge between AI-generated music and hardware synthesis
Future Extensions
- Support for additional Elektron devices (Analog Four, Octatrack, etc.)
- Pattern sequencing and automation
- Sound preset management
- Additional synthesis parameters