Network Musical Performance and Cloud MIDI-Bridge

Remote musical MIDI collaboration has been an interesting academic research area for years, but has not been explored by many casual musicians. One reason is that the complexity of software that brings MIDI and Networking together makes it a little bit of a daunting endeavor. We think it’s time to open exploration to more people and make remote MIDI collaboration as easy as joining a Hangout.

What is Network MIDI?

Back in 2001, a group of researchers at Berkeley began to experiment with remote musical collaboration [1]. The idea was see if musicians separated by some distance could collaborate in real time over a high-speed network. Rather than sending real-time audio signals, MIDI events were transmitted between instruments at two different locations.
To validate the idea, experiments were performed with musicians at Stanford and Berkeley who were “jamming” in real-time with MIDI instruments. The MIDI events from the studio at Stanford were sent to Berkeley, and the MIDI events from the Berkeley studio sent to Stanford. The researchers had access to a special high-speed network between the two locations which offered much better performance than was available to the general public in 2001.
Continue reading “Network Musical Performance and Cloud MIDI-Bridge”

Yamaha MD-BT01 Bluetooth MIDI adapter to Raspberry Pi

The Yamaha MD-BT01 is a nifty little MIDI 5-pin DIN to Bluetooth adapter.  It plugs into the MIDI In/Out ports of MIDI controllers to connect wirelessly to a computer with Bluetooth.  A typical use for this adapter is to connect legacy MIDI keyboards to a computer without using a 5-pin MIDI to USB adapter on the computer.  Since most computers have Bluetooth built in these days, this makes for a tidy work-area since it eliminates at least one of the cables in your MIDI studio.
 

The MD-BT01 has a really smart look – it consists of just two large plugs connected by a single wire.  It runs off of the current already provided by the 5-pin MIDI signal.  Just plug it in, and it advertises itself as a Bluetooth MIDI connection point.    Since it uses the Bluetooth MIDI standard, it can connect to many different devices.  We tested it with Raspberry Pi and it works fine with Raspbian Stretch.  If you have followed the steps in our previous article (https://mclarenlabs.com/blog/2019/01/15/korg-microkey-air-37-bluetooth-midi-keyboard-with-raspberry-pi/) then your Pi is ready to go.
Continue reading “Yamaha MD-BT01 Bluetooth MIDI adapter to Raspberry Pi”

Korg Microkey Air 37 Bluetooth MIDI Keyboard with Raspberry Pi

Do you want to have even more fun with your musical Raspberry Pi? Use an external Bluetooth MIDI keyboard with it! For this project, you need to download and compile a new version of the Bluetooth drivers for Linux. If you don’t already have compilation tools installed, you’ll need those too.

We will tell you how to compile and install the necessary Bluetooth driver, and then describe how to pair a Bluetooth MIDI Keyboard.

Prerequisites

You should have a Raspberry Pi 3 with built-in Bluetooth adaptor.
Continue reading “Korg Microkey Air 37 Bluetooth MIDI Keyboard with Raspberry Pi”

Punching it Up: Low-latency notes

Sometimes you want a really “punchy” sound. To a musician, this means a sound with a rapid attack and a quick reaction from the keyboard. To a software developer, this means a sound with a very low attack rate and a very low latency through the synthesizer from the keyboard to the audio output. To make a punchy sound, we’re going to use an external USB audio card, and also adjust the sound card settings.

What is Latency?

Latency is the delay from when you hit a note on the keyboard until you hear the sound. Musicians deal with latency all the time, because there are audio delays inherent in all of our equipment. Pipe Organ players have long been accustomed to experiencing a delay between the keyboard action and the sounding of a pipe. However,  organists learn to adapt.
If the value of the latency between the keypress and the sound is constant, a musician has a good chance of being able to compensate. If the latency is unpredictable, even a tiny bit, then a musician will have a harder time keeping their music sounding rhythmic. We are going to try to adjust our organ to reduce latency, and also the variance of the latency.

Why not the internal sound device?

The internal sound chip of the Raspberry Pi 3 is good enough for desktop sounds and casual listening to music, but if you want clearer sounds, and lower latency you will want an external USB sound card. The actual experience you have will vary with the sound card you choose. Here at McLaren Labs we use a Yamaha MG-10XU mixer with USB input as an external sound device and it works great.
Read about how we reduced latency and created a “punchy” sound below the break.
Continue reading “Punching it Up: Low-latency notes”

Our new Pi Organ Synth

We’ve been inspired to be creators ever since we got our first Raspberry Pi.  It makes possible so much invention and experimentation for not a lot of money.  One of the things we’ve wanted is an easy-to-use, dead simple tone generator for using the Raspberry Pi as a MIDI instrument.
Our just-released Organ synthesizer makes it easy for anyone to get started with using a Raspberry Pi as a musical instrument.  Plug a MIDI keyboard into the USB port and play.  Or grab a MIDI file and experiment with different sounds.  It’s fun, and it’s easy.  And best of all, it was designed specifically for the Raspberry Pi!

 

System Requirements

  • requires a Raspberry Pi 3B or 3B+
  • use the internal sound chip, or select an external USB sound card for better results

Download for Free here

https://mclarenlabs.com/store
 

rtpmidi in action

The animated screen capture below illustrates the rtpmidi program in action.  The rtpmidi program allows two computers to share musical MIDI events in real time over a network connection.  The RTP-MIDI protocol is a standard implemented on Mac, Windows and Linux computers.  You can use McLaren Labs’ implementation of the RTP-MIDI protocol to create musical networks of computers.
What we see is the following.

  • A remote computer named “Ubuntu Laptop” appears on the network.  (See the left panel.)
  • The remote computer creates a new session with us and becomes a “Participant” in our network.  (See the “Participants” panel.)
  • The two computers synchronize.  (Note how the new participant changes from Yellow to Green.)
  • The remote computer begins sending MIDI Note information to us.  (See the latency graph in the bottom right.)

Towards the Tactile Internet of Musical Things

You may have heard a new term recently: “The Tactile Internet” [1]. The Tactile Internet is the next evolution in the Internet of Things, where humans and machines can interact in real time, and with a very low latency. Low latency capabilities will enable new applications. The Tactile Internet will allow people to interact with remote environments and in real-time.

The enabling technology is 5G. The 5G standard defines a new class of service called “Ultra-Reliable Low Latency Communication” (URLLC). URLLC not only increases uplink speed, but also eliminates some of the handshakes necessary for an endpoint to send some data up to the network [2]. The end result is that applications can inject data into the network at a much reduced latency.
Continue reading “Towards the Tactile Internet of Musical Things”

Using Yoshimi Software Synthesizer on the Raspberry Pi 3B

The RaspberryPi 3B is an amazingly powerful computer for the price. It provides quad-core computing power for just $35. This makes it more than capable for music experimentation and learning, and experimenting with Software Synthesizers is a fun way to learn about sound.
 

Yoshimi Software Synthesizer running on the Raspberry Pi 3B

This article gives some hints for setting up a Software Synthesizer on your Raspberry Pi. We’ll talk about installing and configuring Yoshimi. Of course, this “software synth” works great with McLaren Labrtpmidi, so you can experiment with a network of Raspberry Pi synthesizers too.
Continue reading “Using Yoshimi Software Synthesizer on the Raspberry Pi 3B”

Using rtpmidi from the Command Line

Did you know you can use rptmidi directly from the command line in a terminal?  When used this way, the GUI (graphical user interface) is not used, and Bonjour is skipped as well.  Instead, each invocation of the rtpmidi program creates a new Session that can be a Session Listener or Session Initiator.  Working at this level you can connect if you know the hostname or IP-Address of each computer, as well as the port the RTP-MIDI session is listening on.

Command line mode can also come in handy if you are developing a “headless” embedded computer application like the Zynthian Raspberry Pi Synthesizer.
Read on for detailed examples and explanations.
Continue reading “Using rtpmidi from the Command Line”

How to connect an iPad to a Raspberry Pi – Video Tutorial

Introduction

There are a lot of good touch-MIDI controllers available for the iPad.  They’re fun to use and can be customized.  One such popular controller is MidiPads .  In the past, an owner of a Raspberry Pi wouldn’t be able to take advantage of this controller, since MidiPads speaks “Network MIDI” and the Raspberry Pi does not.  (Or did not, at least until now).

Continue reading “How to connect an iPad to a Raspberry Pi – Video Tutorial”