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:

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:

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