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.
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.”
There is evolving documentation describing the design goals and use of the project here:
https://mclarenlabs.github.io/libs-mclaren-alpha/
and the source code repository is here:
https://github.com/mclarenlabs/libs-mclaren-alpha/
There’s some other fun stuff in the project repository too. One is a document describing how to use Visual Studio Code (https://code.visualstudio.com) for programming in Objective-C with the clangd (clang-daemon) extension for intelligently creating code. All in all, it’s a very nice audio programming environment.
Dear Mr. McLaren,
astonished and fascinated I found this project. I previously set up my raspi with gnustep (with apt get) and musickit/sndkit. But I have problems with setting gnustep up with modern clang and libdispatch. Could you please point me to a source where this is straight forward to accomplish-or could you provide me a script how to set it up properly. I want to use your synth kit!!!
The easiest way we have found to install gnustep is with these scripts
https://github.com/plaurent/gnustep-build
– clone the project
– mkdir ~/gbuild
– cd ~/gbuild
– ~/git/gnustep-build/blob/master/raspbian-10-clang-9.0-runtime-2.1-ARM/GNUstep-buildon-raspbian10.sh
and in about 20 minutes, there should be a gnustep installation.
You may need to use “git clone –recurse-submodules” too when you clone the project.
Hope this helps. The scripts from plaurent work really well.
Tom,
I found it! It worked superb!
The lib binary of synth kit is only for clang 7 and runtime 1.9.
I built gnu step with clang 9 and runtime 2.1 – like in the script.
So I have the problem that your lib is not ABI compatible – and in the end I could not use your synth kit.
Is there the possibility to provide the lib according to my requirements?
Or would it be possible to make the synth kit sources public?
Best Whishes
Michael
Hi Michael –
yes, i’ll build it for the latest. I didn’t realize it was that out of date!
I sent you some email. Did you get it? That would be a good way to communicate.