A bridge for serial devices and MIDI controllers
Project description
Serial MIDI Bridge
A lightweight Python-based Serial to MIDI bridge that enables devices to communicate via MIDI-over-serial
Features
- Low latency (< 5ms) bidirectional MIDI message processing
- Cross-platform compatibility (Windows, macOS, Linux)
- Support for standard MIDI messages
- Simple command-line interface
- Auto-reconnects to serial device if device drops out
- No threading, asyncio, or event loops
Installation
pip3 install serial-midi-bridge
Quickstart
macOS
serial-midi-bridge -d /dev/tty.usbserial -i "IAC Driver Bus 1" -o "IAC Driver Bus 2"
Windows
serial-midi-bridge -d COM4 -i "loopMIDI Port IN 0" -o "loopMIDI Port OUT 2"
Virtual MIDI Setup
For instructions on setting up a virtual MIDI device, see Ableton's "Setting up a virtual MIDI bus" guide
Usage
usage: serial-midi-bridge [-h] [-d DEVICE] [-b BAUDRATE]
[-i Input MIDI device]
[-o Output MIDI device] [-v] [-l]
Serial to MIDI bridge
options:
-h, --help show this help message and exit
-d, --device DEVICE Serial port name
-b, --baudrate BAUDRATE
baud rate
-i, --midi_in Input MIDI device
-o, --midi_out Output MIDI device
-v, --verbose Print all MIDI messages
-l, --list List available USB devices and MIDI devices
To run the bridge, device, baudrate, midi_in, and midi_out are required. You can use --list (or -l) option to list available devices.
Issues
-
MIDI or Serial Device Not Found
- Ensure your devices are properly connected and recognized by your system
- Use the
-loption to list available devices
-
MIDI Messages Not Being Sent/Received
- Ensure the baud rate matches your device's configuration (default is 9600)
- Enable verbose mode with
-vflag to see all MIDI messages- If messages are all
\x00, the baud rate is most likely incorrect - If no messages are being sent/received, it is likely a hardware issue
- If messages are all
If you find a bug, please create an issue and contributions are always welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file serial_midi_bridge-1.0.1.tar.gz.
File metadata
- Download URL: serial_midi_bridge-1.0.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ef0c71186f358556496de8d4d53d3eb42a5bb7d395aae1bde20fdf6b4355a34
|
|
| MD5 |
6ac48275fd288fa7a73cfa95b2732e20
|
|
| BLAKE2b-256 |
60ed892a3a137dac10c16506de35989bd9fdbb6d98531d08aebc8ecc8f91bf97
|
File details
Details for the file serial_midi_bridge-1.0.1-py3-none-any.whl.
File metadata
- Download URL: serial_midi_bridge-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
176b73b7f702ae8d57cc60bdd343b5fc3361aeab7398ae5c312e32bf765c3a7c
|
|
| MD5 |
8a35be721c323518e4e53ad382f9d7b1
|
|
| BLAKE2b-256 |
e17a2f175277f241c8c2592818422cdf9e41597344e104dcccb91bc7be37f706
|