Skip to main content

A MIDI router/processor

Project description

PyPI Python License Core Discourse

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

Build-time

  • scdoc: man page generation
  • sphinx: HTML documentation (see pyproject.toml for modules)

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

mididings-20260601.tar.gz (185.0 kB view details)

Uploaded Source

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

Hashes for mididings-20260601.tar.gz
Algorithm Hash digest
SHA256 6432935932d2332b060e94a9a79345ac009d2949fcbf24f8deed40c0e0e883ff
MD5 df2c78cc5a608add6c19a068796a4522
BLAKE2b-256 5b6d565a5c3b68d97b9694abb25ae0b249fab46744bd96dc4547a1a18f43ba87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page