A MIDI router/processor
Project description
mididings
A Python-based MIDI router and processor for Linux and macOS. Flexible, fast, and built for live performance. Route, filter, transform and split MIDI events using a clean Python DSL, with all processing handled in C++.
Supports ALSA and JACK MIDI. Available under the GNU GPL.
Why this fork?
The original mididings by Dominic Sacré has been unmaintained since 2015.
This community fork provides full Python 3 support, a modern build system
(Meson + pyproject.toml), updated dependencies, and unified fixes gathered
from various forks. The API remains fully compatible with existing patches
and scripts.
Features
MIDI routing and filtering
Filter events by type, channel, note, velocity, and more. Route freely between any number of input and output ports.
Modifying and converting MIDI events
Transpose notes, apply velocity curves, remap controller values and ranges, or convert events to any other MIDI event type. Includes a diatonic harmonizer, floating split points, latched notes, and more.
Seamless scene switching
Set up named scenes, each with its own routing and processing, and switch between them at any time while playing. No dropouts, no stuck notes.
Monitoring and side effects
Print MIDI events to the console for debugging. Trigger shell commands, OSC messages, or DBUS calls alongside MIDI output.
Installation
PyPI
Note: Ensure system dependencies (ALSA, JACK, Boost) are available before installing.
pip install mididings
With optional extras (OSC, MIDI files, DBUS, auto-restart):
pip install mididings[osc,smf,dbus,autorestart,xdg]
Available extras and their dependencies are listed in pyproject.toml.
Arch Linux
pacman -Syu mididings
From source
The recommended approach for development or testing a new version is a virtual environment:
python -m venv venv
source venv/bin/activate
pip install .
To verify the installation:
which mididings
To resume work in an existing environment:
source venv/bin/activate
System-wide installation
Requires scdoc and sphinx if building documentation.
meson build --prefix=/usr/local
meson compile -C build
meson install -C build
Packaging options
# Disable documentation
meson build -Ddocs=disabled -Dman=disabled
# Build documentation separately
meson setup build -Ddocs-only=true
meson compile -C build
cd build && meson install
Note: mididings must be installed before building docs with
docs-only=true.
Dependencies
Required
Optional
- pyliblo3: OSC send/receive
- pysmf: MIDI file read/write via
process_file() - dbus-python: DBUS messages
- watchdog: auto-restart on script change
- tkinter: livedings GUI
- pyxdg: XDG config file lookup
Build-time
Documentation and support
Additional references:
License
mididings is available under the GNU General Public License, version 2 or later.
Example scripts in doc/examples are available under the
GNU Free Documentation License 1.3 or later.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mididings-20260601.tar.gz.
File metadata
- Download URL: mididings-20260601.tar.gz
- Upload date:
- Size: 185.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6432935932d2332b060e94a9a79345ac009d2949fcbf24f8deed40c0e0e883ff
|
|
| MD5 |
df2c78cc5a608add6c19a068796a4522
|
|
| BLAKE2b-256 |
5b6d565a5c3b68d97b9694abb25ae0b249fab46744bd96dc4547a1a18f43ba87
|