SEPT 5, 2024 - rtpmidi
Version 2.0 brings enhanced timing, latency adjustment and memory optimization. Read about refined event timing and latency adjustment. Version 2 is available in releases named rtpmidi_2.0.0_
in the store. Available in Raspberry Pi OS 64-bit and Ubuntu24.04 initially.
JULY 10, 2024 - Alpha release of our new product MMKServer
. Seamlessly expose MIDI devices to the network with Zero-Configuration. Read about MMKServer here.
MAY 25, 2024 - New release of rtpmidi
for Debian 12.5.0 (Bookworm). Use with Crostini in Chromebook to bring RTP-MIDI into the Linux subsystem.
MAY 11, 2024 - New release of rtpmidi
for Ubuntu 24.04. Supports X11 and Wayland displays. Optimized with clang-18.
McLaren Labs brings MIDI applications to the Raspberry-Pi and Ubuntu computers. Our aim is to make music-creation and experimentation easy and fun on inexpensive, accessible computers. Our apps are optimized for multicore architectures, built using libdispatch, to take advantage of the increasing performance available on even inexpensive CPUs.
Our networking utility, rtpmidi
, lets you send MIDI messages over a computer network using WiFi or Ethernet. The rtpmidi
protocol is already build into Mac computers, so this utility makes it easy to network your Raspberry Pi or Ubuntu computer with your Mac. It is also possible to use rtpmidi
with PCs and Android devices, because this protocol is available on those platforms too.
We also like to share some of our developments. We regularly release free downloads, and have recently begun distributing the McLaren Synth Kit - an audio programming environment based on Objective-C for GNUstep. McLaren Labs remains a work in progress.
MIDI was originally designed as a serial protocol to be sent over cables that plugged into a MIDI-specific 5-pin port on a computer or keyboard. Many devices these days use USB instead of the special MIDI connector. There are also ways to send MIDI over Bluetooth.
Network MIDI translates MIDI into messages that can be sent over your computer network. It is also very flexible: one computer can host multiple sessions, with each session managing the connections between two or more devices. Network MIDI replaces cables and can simplify your studio, allowing software control of connections and patches. A Network MIDI controller can implement split and merging functions in software.
Because Network MIDI is built into Mac OSX, you can use a Raspberry-Pi or Ubuntu Linux computer to send MIDI information to your Mac. This allows you to "play" Mac synths from your Pi. You can also use a cheap Linux computer to "bridge" USB-MIDI keyboards and controllers into your Ethernet network.
Why RFC-6295? RFC-6295 (alsa known as RTP-MIDI) is a special protocol for MIDI information. RTP ("Real Time Protocol") is a family of protocols for sending real-time information like audio and video. RTP-MIDI is a special form for sending MIDI events. Other systems (like OSC, for one) use either UDP or TCP protocols directly. UDP packets have low latency, but their delivery is not guaranteed. TCP messages are guaranteed to be delivered, but system buffers can introduce unmanaged delay.
RTP-MIDI is built using UDP packets and introduces an error-correction algorithm designed especially for music called the "Journal". This algorithm detects when UDP packets have been dropped and recovers the information in a musically-friendly way. This means that if a Note-OFF packet is lost, that note will not stay "stuck on." The protocol will detect the missing Note-OFF and recover. It also means that notes will not be played twice by accident. This method gives the best experience for live performance.
MMKServer ("McLaren MIDI Kit --- Server") is a headless appliance software you can run on a Raspberry Pi. Share your Keyboard controllers, synths, drum machines and control surfaces over the network. For each attached MIDI device, MMKServer will announce it on the network as a separate session. The name of the device as seen by Linux will be the Bonjour name announced on the network. Simply open up your RTP-MIDI configuration program on your DAW and select the remote device by name.
MMKServer is a new addition to our family of products. It addresses a typical use case for our users - that is to use a Raspberry Pi as a "dongle" to serve USB-attached MIDI devices over the network. This software appliance is about as easy as it gets. There is no configuration. Simply install it.
AVAILABILITY: for a limited time, MMKServer is available as a free-alpha trial in our Store. We'd like to hear from our users. Try it out and let us know how it works out for you.
MMKServer runs headless on your Pi, but you can open up a detailed console view using a browser. The console server runs on port 8000. It shows which Linux MIDI devices are being exported, which UDP port they are exposed on, and the status of any connections to those devices.
The console is configured to trigger a page refresh every 5 seconds. That way the view is always up to date. It is a convenient way to monitor the status of your connections.
If you know the IP address of your Raspberry Pi, you can open a web-browser directly to http://ipaddress:8000
to see the console. However, sometimes it is difficult to know the IP address of your Pi.
MMKServer helps by announcing the IP Address and Port of its HTTP Console using Bonjour. Then you can use a Bonjour browser to find MMKServer on your network. The diagram here shows the Mac "Discovery" app searching for bonjour services on the local network. The program "mmkserver" is announced directly.
MMKServer is installed as a systemd service unit. It will automatically start when first installed, and every subsequent boot after that. To control it manually, use systemctl
.
Examples pi@raspberrypi:~ $ systemctl stop mmkserver pi@raspberrypi:~ $ systemctl start mmkserver pi@raspberrypi:~ $ systemctl status mmkserver
Logs from MMKServer are captured by the systemd logging facility. To view the logs of MMKServer, you can use the journalctl
command. The following lists the log messages from MMKServer with the most recent messages first.
Examples pi@raspberrypi:~ $ journalctl -r -u mmkserver ...
The McLaren Labs Synth Kit is an open source collection of Objective-C components for working with MIDI and Audio on Linux. Built on the GNUstep platform, the McLaren Synth Kit helps you:
Find the McLaren Synth Kit on github.com.
https://github.com/mclarenlabs/libs-mclaren-alpha
And read about its architecture and design on github.io.
https://mclarenlabs.github.io/libs-mclaren-alpha/
Interested in collaboration or an integration? Let us know what you have in mind!
For support or inquiries send Email, or use the Contact form on the right. Sending Email is preferred, as it will help our reply get through your spam filter.
Proudly created in:
San Francisco, CA