Skip to main content

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

  1. MIDI or Serial Device Not Found

    • Ensure your devices are properly connected and recognized by your system
    • Use the -l option to list available devices
  2. MIDI Messages Not Being Sent/Received

    • Ensure the baud rate matches your device's configuration (default is 9600)
    • Enable verbose mode with -v flag 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 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)

Source distribution for serial-midi-bridge 1.0.1
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)

Table of built distributions (wheels) for serial-midi-bridge 1.0.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page