Digitakt MIDI

Provides real-time control and transport for Digitakt MIDI via MCP, including CC, NRPN, SysEx, and pattern export capabilities.
  • python

1

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "feamster-digitakt-midi-mcp": {
      "command": "/Users/feamster/src/digitakt-midi-mcp/venv/bin/python",
      "args": [
        "/Users/feamster/src/digitakt-midi-mcp/server.py"
      ]
    }
  }
}

You can control a Digitakt MIDI device from a dedicated MCP server that exposes a rich set of commands for playing notes, moving patterns, adjusting parameters in real time, and exporting or recording MIDI data. This server runs Python code locally, communicates with the Digitakt over USB/MIDI, and lets you orchestrate complex performances and live workflows with precise timing.

How to use

Run the MCP server locally and connect your Digitakt MIDI device. You can trigger notes, send CCs, change patterns, run NRPNs, and manage transport from an MCP client or script. Use the provided tools to sequence drums, melodies, and automation in tight sync with MIDI Clock.

How to install

# Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Ensure your Digitakt II is connected via USB with Overbridge

# Optional: configure MIDI per-track channels on the Digitakt for MCP triggering
# Settings → MIDI → CONFIG → CHANNELS
# Set Track N IN channel to N for N = 1..16

Configuration and usage notes

To run the server from your local environment, start the Python script directly after activating your environment. The server script is named server.py and is the main entry point for MCP communication.

If you want to integrate with Claude Desktop, add a configuration block that points to your local Python executable and the server script. The following example shows how Claude Desktop can launch the server from a configured path.

{
  "mcpServers": {
    "digitakt_mcp": {
      "command": "/Users/feamster/src/digitakt-midi-mcp/venv/bin/python",
      "args": ["/Users/feamster/src/digitakt-midi-mcp/server.py"]
    }
  }
}

Troubleshooting and tips

If the Digitakt does not respond, verify that MIDI clock is enabled and that the transport receive/clock receive settings are active in the device’s MIDI config. For reliable playback when controlled externally, use play_with_clock which starts the sequencer and streams clock while maintaining precise timing.

If you encounter permission or port issues, ensure your OS permissions allow MIDI access to the Python process and that the USB connection remains stable.

SysEx and advanced control

Raw SysEx messages can be sent for advanced pattern programming and device control. The exact SysEx format may require experimentation or data capture from Elektron Transfer software. Use SysEx to perform specialized operations not covered by standard CC/NRPN messages.

Testing and development guidance

Code changes should be tested against a connected Digitakt device. Run the test suite in the tests directory to verify MIDI mappings and transport interactions. Ensure your Digitakt is connected via USB for all tests.

Examples of usage with Claude Desktop

Add this to your Claude Desktop config to run the MCP server from your local environment.

{
  "mcpServers": {
    "digitakt_mcp": {
      "command": "/Users/feamster/src/digitakt-midi-mcp/venv/bin/python",
      "args": ["/Users/feamster/src/digitakt-midi-mcp/server.py"]
    }
  }
}

Tools and capabilities overview

The MCP server exposes a wide set of tools to drive Digitakt performance, including sending notes, triggering tracks, adjusting CCs, handling MIDI transport, exporting patterns to MIDI files, and managing parameter automation. See the dedicated tool list for exact tool names and parameter expectations.

Available tools

send_note

Send a MIDI note to trigger drums on the Digitakt.

trigger_track

Trigger a one-shot sample on a specific Digitakt track (convenience wrapper).

send_cc

Send a Control Change message to adjust Digitakt parameters.

send_program_change

Switch to a different pattern on the Digitakt.

send_note_sequence

Send a sequence of notes with timing.

send_nrpn

Send an NRPN message for advanced parameter control.

set_trig_note

Set the note for a trig (step) conveniently.

set_trig_velocity

Set the velocity for a trig (step).

set_trig_length

Set the length for a trig (step).

send_midi_start

Send MIDI Start to begin the Digitakt sequencer.

send_midi_stop

Send MIDI Stop to halt the sequencer.

send_midi_continue

Send MIDI Continue to resume playback.

send_song_position

Send MIDI Song Position Pointer to jump within the sequence.

play_with_clock

Play with MIDI clock to ensure reliable external control.

play_pattern_with_tracks

Start a pattern and trigger specific tracks at specified times.

play_pattern_with_melody

Start a pattern and play a melodic sequence on the active track.

play_pattern_with_loop

Play a pattern with continuously looping notes.

play_pattern_with_tracks_and_melody

Combine track triggers and melody notes in one transport session.

save_last_melody

Save the last played melody to a standard MIDI file.

save_last_pattern

Save the last played pattern to a standard MIDI file.

export_pattern_to_midi

Export a complete pattern to a multi-track MIDI file.

send_sysex

Send a System Exclusive message for advanced control.

request_sysex_dump

Request a SysEx data dump from the Digitakt.

set_parameter

Instantly set a specific parameter value on a chosen track/channel.

send_parameter_sweep

Smoothly sweep a parameter over time with a chosen curve.

send_parameter_envelope

Apply an ADSR-style envelope to a parameter.

play_pattern_with_parameter_automation

Play a pattern with automated parameter changes.

save_automation_preset

Save parameter automation as a reusable preset.

load_automation_preset

Load and optionally play a saved automation preset.

list_automation_presets

List all available automation presets.

export_automation_to_midi

Export parameter automation to a standard MIDI file.

list_parameters

List all automatable parameters, organized by category.

list_parameters(category)

Filter parameter list by category name

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational