Musical Pattern Generation with the McLaren Synth Kit

  • by

The McLaren Synth Kit (at https://github.com/mclarenlabs/libs-mclaren-alpha) is an Objective-C toolkit for building projects that simplify working with MIDI and sound synthesis on Linux. We open-sourced it last year and have been refining it with new features and capabilities.

Our latest features are the Metronome and a Pattern generation little-language. The Metronome hooks into to the ALSA MIDI system to provide a MIDI-clock timebase. It counts out beats and measures. The Pattern facility further abstracts the Metronome to longer sequences of events that repeat and can nest.

Read More »Musical Pattern Generation with the McLaren Synth Kit

9Front and Audio on Raspberry Pi4

  • by

Last week I read about a new release of a fork of the Plan9 Operating System from the 9Front crew. The release is called “Human Biologics” and the new feature list was intriguing. There was now default support for git, and ssh, and some improvements to audio were included.

  • audio(1) – mp3, ogg, flac, ulaw, wav

I had heard about Plan9 on an off for years. I wondered what sorts of audio and MIDI support might be in this OS, so I gave it a ride. What follows is a short account of some things I learned.

Read More »9Front and Audio on Raspberry Pi4

Chromebook, Crostini Linux and MIDI

A few weeks ago I picked up an inexpensive Chromebook. I’m typing this on it now, in fact. This was my first experience with Chromebook, and my first experience thinking about porting McLaren Labs’ tools onto a Chromebook. At first, I was thinking about wiping ChromeOS and putting Debian11 directly on it. But then I learned about native Linux support on Chrome in a VM.

Chromebook Linux

Crostini is the name given to the Linux-on-Chromebook virtual machine support. To enable it on my chromebook, I needed to open chrome://flags and enable Linux. Then I rebooted, and in Settings>>Advanced there was a new section called “Linux”. Voila.

Applications that need the Linux environment cause the Linux VM to start. One application is “Terminal” in the main applications menu. Start it up, and there is a full Debian 11 environment there. You can use “apt-get” and install whatever you desire.

Read More »Chromebook, Crostini Linux and MIDI

GNUstep StepTalk is Alive and Well

  • by

A few years ago, I explored the idea of writing a small interpreter for embedding into McLaren Labs applications. The concept was to extend rtpmidi or a synth application with a scriptable ability to customize controls, behaviors or sound graphs. This would help make each application very slim, but to allow extension through scripting. (This is not a very novel idea: it’s been done many times before. 🙂 )

The Objective-C execution environment (libobjc) provides many hooks that make it fairly easy to call into the ObjC runtime from an interpreter, or even to bridge Objc method calls back to an interpreter. The idea of a scritping environment to accompany a GNUstep ObjC Appplication program seemed promising and I wrote a little interpreter (based on PostScript syntax) to test out some of the ideas.

Along the way, I learned about a much more mature project in libs-steptalk. Among other things, it provides a SmallTalk-like language for extending applications or even gluing them together in the GNUstep workspace. It seemed very old, but there were some tremendous ideas in there: I wondered if I could learn enough about it to use it, and I wondered if it still worked.

(Spoiler Alert! I did and it does.)

Read More »GNUstep StepTalk is Alive and Well

GNUstep Desktop – a refreshed look at NeXT/OpenStep

  • by

There’s a cool project called “GNUstep Desktop” that brings together many old GNUstep technologies, and a few new ones, to provide an entire integrated desktop. We gave it a whirl and are pretty impressed!

GNUstep Desktop on Debian 11

It’s pretty amazing that software that began life 30 years ago is still operational and evolving, but that is the case in the GNUstep project.

At McLaren labs, we have been a fan of modern ObjC on clang, and the ObjC runtime with Foundation libraries and have been slowly learning more about GNUstep GUI and desktop. To be honest, it has been a slow learning process. While there is actually very good information about the various pieces of the GNUstep project, it sometimes seems that there are too many conflicting versions around — there isn’t a single source of truth that brings everything together. But that being said, the quality of many of the components really amazes me.

Read More »GNUstep Desktop – a refreshed look at NeXT/OpenStep

Announcing McLaren MIDI Kit – RTP-MIDI library for your own projects

  • by

The McLaren Synth Kit — https://github.com/mclarenlabs/McLarenSynthKit — now includes an RTP-MIDI engine that you can include in your own projects. The engine is the same one that is in our well-known rtpmidi product! We’re providing the library so that you can set up RTP-MIDI connections as you like.

Background

We sometimes receive requests from users to add features to McLaren Labs’ rtpmidi product to handle connections in a certain way. Some users might want to automatically find a particular endpoint or address. Another user might want automatic re-connect in a certain situation. Others want to experiment by translating events from non-MIDI sources into note events sent to a synthesizer on their network.

Read More »Announcing McLaren MIDI Kit – RTP-MIDI library for your own projects

Arduino AppleMIDI and McLaren rtpmidi

  • by
SparkFun ESP2866 “Thing Dev” board

One of our customers brought to our attention an implementation of RTP MIDI for Arduino. With this sketch, you can use an Arduino to send and receive MIDI over Ethernet and WiFi. It is compatible with McLaren Labs’ rtpmidi, so you can use it to send MIDI from an Arduino to your Raspberry Pi.

Read More »Arduino AppleMIDI and McLaren rtpmidi