McLaren Labs
MIDI Applications

Articles tagged “linux”

← All articles
  1. The Joys of Cocoa (in 2024)

    The McLaren Synth Kit presents audio synthesis as the construction of a graph of audio operators (voices) with the parameters of each type of operator determined by an associated model. Voices define the code that is run in the audio thread and models hold the values that are read from the audio thread. This separation allows the audio thread code to be ensured that maniplations on the models do not block. With models safely out of the audio loop, UI interactions with model properties is straightforward and can use Cocoa idioms for manipulating property values.

  2. Announcing McLaren Synth Kit

    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/libs-mclaren-alpha. 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.

  3. VSCode, Ubuntu Snaps and ALSA Sound Development

    Here at McLaren Labs we like to try all sorts of tools and development environments to see how they work together. We've been using vscode (https://code.visualstudio.com/) on and off for about a year, but only recently decided to try using it for a more complete edit/debug/run cycle for an Objective-C Synthesizer project. We ran into an unexpected interaction between the Snap environment of vscode and the ALSA (Advanced Linux Sound Architecture) PCM interface.

  4. Enabling memlock for rtpmidi on Ubuntu 20.10

    In version 0.5.2 of McLaren Labs' rtpmidi, we made the use of locked memory the default. Locked memory dedicates fixed RAM to the rtpmidi process, and prevents it from being swapped to disk. The use of locked memory (through the mlockall() function call) can be a benefit to realtime applications like MIDI and Audio, but its use can be to the detriment of other processes. So it should be used carefully.

  5. The State of Network MIDI (2019)

    Network MIDI was invented sometime around 2004 to send MIDI messages over an IP network. To handle network loss, a protocol known as RTP-MIDI was created and documented as RFC-4695. Network MIDI is built into OSX computers and iOS devices. Apple music creators think nothing of connecting MIDI equipment using Ethernet and WiFi, instead of MIDI cables.

  6. Why McLaren Labs uses Objective-C

    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.

  7. 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 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.