Compiling C++ code like I know what I’m doing, brewing dependencies and open source audio hardware.
About a year ago, I found OTTO, a project aiming to create an open source synth/sampler, inspired by the OP-1. I was super excited about the prospect of an open-source alternative to the OP-1 (although, OTTO does not market itself as such) for a few reasons:
- The OP-1 is super cool.
- The OP-1 is also $1300+.
A couple years ago I made a clone of some of the functionality of the OP-1 – it’s tombola sequencer specifically. It was a super fun project, but I didn’t do much in the domain afterward. I was pumped to see someone poking at the same idea with a bit more fervor and a lot more domain knowledge.
So I looked into the repo to see if I could contribute, and spent a few weeks on and off the project’s Discord chat trying to get things compiling on my machine. The project was pretty new and the folks around it were very supportive to someone who had never touched a line of C++. I went so far as to partition my MacBook with Ubuntu so that I could get closer to reproducing a build that others were running. I didn’t have any luck though.
I tabled it, resigned to continue believing that C++ was too difficult/scary to even figure out how to get something running.
This morning I found myself back on the OTTO repo; I can’t remember what brought me there (this was pre-coffee, memory is hazy). A couple hours later I had a build running:
The build instructions are quite good now, and most of it involves doing a few installations via
brew. I got stuck for a little while trying to get the right version of
cmake, (which involved installing the source of it so I could use 3.8, instead of 3.12 which
brew installs) as well as the correct compiler version (I ended up having two installations of
llvm, one of which had a broken installation of
clang 7.0.0 somehow).
Anyway, when I have a bit more free time/curiosity I’ll return to booting the project and trying to get some sounds out of it (wiring up a virtual midi keyboard is another bit of plumbing as well).
Some semi-related, unprocessed thought-storms:
- Tools like OTTO, VCV-Rack and Pure Data are inspiring open-source examples that combine code + music.
- The potential for distraction from actually writing/recording is pretty high. (easy to get caught up tooling and poking at code)
- Creating something like OTTO, but on a much much smaller scale would be super fun. A quick google search didn’t really reveal much about how to get started with something like that though (aside from, like, DSP fundamental textbooks.)
Overall, it’s a nice surprise to come back to something you thought was Too Hard™ and have an easier go of it. In the time since I first tried getting the project working, I still haven’t written ANY C++ (I’ve written some C), so I feel like a like I’m experiencing a hard-to-classify-qualitative-knowledge-growth-moment that goes beyond just learning programming languages (ex. more patience, knowing when to take a break, reading error messages etc).