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!
Metadata
Release files for serial-midi-bridge 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| serial_midi_bridge-1.0.1.tar.gz | 8.5 kB | Without provenance | Details for serial_midi_bridge-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| serial_midi_bridge-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for serial_midi_bridge-1.0.1-py3-none-any.whl |
Total release size: 17.7 kB
Release files / serial_midi_bridge-1.0.1.tar.gz
| Download URL | serial_midi_bridge-1.0.1.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ef0c71186f358556496de8d4d53d3eb42a5bb7d395aae1bde20fdf6b4355a34
|
|
BLAKE2b-256 checksum How to use checksums |
60ed892a3a137dac10c16506de35989bd9fdbb6d98531d08aebc8ecc8f91bf97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / serial_midi_bridge-1.0.1-py3-none-any.whl
| Download URL | serial_midi_bridge-1.0.1-py3-none-any.whl |
|---|---|
| Size | 9.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
176b73b7f702ae8d57cc60bdd343b5fc3361aeab7398ae5c312e32bf765c3a7c
|
|
BLAKE2b-256 checksum How to use checksums |
e17a2f175277f241c8c2592818422cdf9e41597344e104dcccb91bc7be37f706
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Security for serial-midi-bridge 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.