I recently bought one of Bela’s Trill sensors - a really nice multitouch capacitive sensor that comes in various shapes and sizes (and open source hardware !). Capacitive touch sensing is something that has been used in analog modular synthesizers for half a century. The main attraction for me as an artist is that it is incredibly response as opposed to the bulky rubber buttons you get on terrible commercial midi controllers or even high quality switches: As soon as you touch it, it sends off a signal (as opposed to a hardware button where the button has to be pressed to the point where it triggers - it sounds like nothing when put in to writing but the difference in responsiveness is incredible).
My amazing workplace allowed me time during the Covid-19 lockdowns in Oslo to spend time improving my C++ and DSP skills. The result of this is a bunch of plugins for SuperCollider, some of which are already released as well as a trunk of Notam plugins that are to be announced. The process of creating server plugins (aka UGens) for SuperCollider is one of the most fun and gratifying ways one can experiment with DSP and C++ in my opinion.
I recently got hold of Electro-Smith’s powerful Daisy Seed microcontroller board for developing embedded DSP projects. Unfortunately, at the time of writing the libraries for it do not support Platformio fully which is normally my preferred way of working with microcontrollers but fortunately it’s pretty easy to setup and use using make. Here are my notes for doing that. Install prerequisites (on Arch) # yay -S dfu-util gcc-arm-none-eabi-bin Setup and build libraries # From the root of your project:
Since the main SuperCollider github repository moved to using Github Actions to automatically build, compile and release cross platform, I felt intrigued to use the same technology to do the same for SuperCollider plugins. There is a number of amazing SuperCollider plugin repositories on Github - a lot will demand that the user compiles the sourcecode themselves to use the plugins. For people used to CMake and/or a Linux-ey workflow of compiling, this is not a big problem but for a lot of others (most people perhaps), it really is a doorstopper.
I recently built version 2 of a “master volume control” midi controller that I had made before. This version is slightly improved on the former, the main improvement being that if you press the button while booting the device it goes into 14 bit midi mode (leveraging 13 of the Teensy’s bits for this) to allow high resolution on the potentiometer’s input. The controller is very cheap and simple to make.
Mutable Instruments is an absolutely amazing synthesizer company that produces open source hardware with open source firmware on it. I have several of these and I love poking around in the firmware (check out this brilliant tutorial om how to do the same). The company has even open sourced it’s development environment which on most systems may be setup in a virtual machine. But this is not so easy on Arch Linux, since these virtual machines rely on old(er) kernels, and I am always on bleeding edge kernel versions on my development laptop, so I decided to setup my own little development environment for hacking Mutable Instruments (and similar) firmwares directly in Arch with no virtual machines used and it seems to work quite nicely.
This is a transcription of Dan Stowell’s very helpful table in the SuperCollider Book (MIT), slightly edited and transcribed for the “new” c++ style for writing plugins. It contains some of the macros available when writing UGens/Plugins in c++ in SuperCollider. This repo contains example code for writing plugins in both the “old” and “new” style which I found helpful in understanding this subject. Also check out this cookiecutter template for generating plugins and the Server Plugin API.
This post is a collection of notes on how to write plugins for SuperCollider. This post will be updated as I go along. Useful links # This repo contains example code for writing plugins in both the “old” and “new” style which I found helpful in understanding this subject. Also check out this cookiecutter template for generating plugins and the Server Plugin API. The two different styles # There are two different headers that contain SuperCollider’s plugin boiler plate code.
It is possible to get a nice development environment on Linux (and other platforms) using NeoVim and a few plugins and settings. This dev environment includes snippets, autocomplete, debugging and smart code suggestions for methods. I got a lot of pointers for this setup from Chendi Xue’s blogpost about Vim/CPP development. So, without further ado here are my notes for setting up shop using YouCompleteMe, UltiSnips and some formatting plugins.