Have you ever wanted to use MIDI commands to control electrical lights or appliances? This article will tell you how using a Raspberry Pi, the GPIO pins controlled by some open-source software from McLaren Labs on GitHub, and a nifty device called the IOT Relay. Using the Relay is an affordable and SAFE way to control 120 VAC sockets and it makes this project a breeze.
The “McLaren Synth Kit” is an Objective-C framework for using MIDI and Audio on Linux computers with the GNUstep programming environment. It is distributed as a project including libraries, headers and example programs at https://github.com/mclarenlabs/McLarenSynthKit. You can use it to experiment with sound synthesis for your own personal projects. The project is designed to provide ready-to-compile examples after you clone the repo.
Working with sound is a delicate endeavor. The Synth Kit does a lot of the low-level work of opening devices, managing an audio thread and copying MIDI events to and from dispatch queues. This leaves the audio programmer free to think about designing sounds as a graph of processing units, called Voices.
Standard Voices in the Synth Kit provide envelopes and oscillators of various types, filters and a reverb algorithm. Using the features of modern Objective-C (blocks, ARC and dispatch queues) the Synth Kit makes programming sounds easy, or at least “easier.”
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.
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.
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.
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… Read More »Our new Pi Organ Synth
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… Read More »rtpmidi in action
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 Labs rtpmidi, so you can experiment with a network of Raspberry Pi synthesizers too. Read More »Using Yoshimi Software Synthesizer on the Raspberry Pi 3B