linux

Linux MIDI Command Line Cheatsheet

USB MIDI controllers and keyboards have come way down in price the last few years.  We really like the Akai MPK Mini mkII, and we’ve really enjoyed using the Numark Orbit because it has an accelerometer in it for sensing tilt and motion, and it is easy to send MIDI messages for changing its colors.

Use the command line to control the MIDI system


If you’re experimenting with a Raspberry Pi using USB MIDI input devices, you’ll probably get to the point where you are wondering if it is working correctly and if the MIDI information is getting into your Raspberry Pi.  This article lists some of the command line tools you can use to examine the information coming from these devices.
Read More »Linux MIDI Command Line Cheatsheet

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.
Read More »Using rtpmidi from the Command Line

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.
Read More »Using Yoshimi Software Synthesizer on the Raspberry Pi 3B

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.
Read More »Punching it Up: Low-latency notes

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 and Raspbian Stretch OS.
Read More »Korg Microkey Air 37 Bluetooth MIDI Keyboard with Raspberry Pi

Yamaha MD-BT01 Bluetooth MIDI adapter to Raspberry Pi

  • by

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 very smart appearance – 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.
Read More »Yamaha MD-BT01 Bluetooth MIDI adapter to Raspberry Pi

Why McLaren Labs uses Objective-C

  • by

McLaren Labs was started with the idea that music and media creation on Linux should be as easy and fluid as Mac OSX. We had been inspired by AVFoundation and the modular way its pieces fit together. We loved being able to build media pipelines with sources and sinks that cleaned up after themselves when you were done with them them.

Many of the facets of the OSX components we liked were provided by ObjC features enabled by the Clang compiler and LLVM tool suite. LLVM has revolutionized language development by paving the way for Swift and Rust. Back at the time we were getting started, Swift on Linux was gaining traction and we considered adopting it. However, after some initial explorations with Swift and libdispatch, we discovered that libdispatch just wasn’t ready with Swift on Linux. That was in 2015 – Swift on Linux is much more mature. The equation might be different today … but it might not too.

Read More »Why McLaren Labs uses Objective-C