Skip to main content

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

  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!

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

serial_midi_bridge-1.0.1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

serial_midi_bridge-1.0.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for serial_midi_bridge-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1ef0c71186f358556496de8d4d53d3eb42a5bb7d395aae1bde20fdf6b4355a34
MD5 6ac48275fd288fa7a73cfa95b2732e20
BLAKE2b-256 60ed892a3a137dac10c16506de35989bd9fdbb6d98531d08aebc8ecc8f91bf97

See more details on using hashes here.

File details

Details for the file serial_midi_bridge-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for serial_midi_bridge-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 176b73b7f702ae8d57cc60bdd343b5fc3361aeab7398ae5c312e32bf765c3a7c
MD5 8a35be721c323518e4e53ad382f9d7b1
BLAKE2b-256 e17a2f175277f241c8c2592818422cdf9e41597344e104dcccb91bc7be37f706

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