Since I’ve been live coding much more in the past few years, I’ve spent a lot of time thinking about and improving my setup. Just thought I’d talk a little about it here.
Most of the time I’m performing with SuperCollider, which has a very nice and constantly improving editor, but visually feels a little dry for me. Because of this, I started looking into other options.
A while ago someone turned me on to using iTerm2 instead of the standard Terminal for OSX. This ended up being ideal for what I needed for two main reasons:
- system-wide fullscreen mode: one keyboard shortcut and you have a monitor full of terminal (most importantly with no menu bar)
- background transparancy
Using a terminal means using a terminal based editor. SuperCollider has good support for two: EMACS and VIM. I decided to go with VIM because I’d needed to use it for work a while ago and had already started learning my way around. I’m going to avoid the editor war and just say that you can use either.
One of the extremely valuable benefits you gain from using either of these editors is the large number of extensions they have. Since they both have been around for over 30 years and are used by programmers quite heavily, there are many things that I’ve found which I now can’t live without:
- pathogen for managing all the plugins
- snippets (currently I use snipmate but I’m also playing around with xpt
- supertab for tab completion (youcompleteme is also very popular)
There are plenty of others but those are the must-haves.
Because live coding involves a lot of typing, and because I think it looks cool, I also wanted to run something to visualize my keystrokes. For this I use Keycastr. Totally optional but nice to have. I have had some strange issues with it spoofing keystrokes on occasion a short while after startup fyi…
Lastly, what’s the point of a fullscreen, transparent terminal if you can’t throw up visuals behind it? At the moment I run a Processing sketch with a handful of things that I have made over the years. I use some simple OSC to let me switch between them in SuperCollider. For the moment my experimental visuals don’t react to anything but my algorave ones do. That’s just a matter of adding more OSC when I get around to it. I’m also in the process of moving to either a Cinder or haskell opengl version, because I have the need: the need for speed!
Beyond that, I wrote some shell scripts (I’m also using zsh because why not) that will start everything quickly (and more importantly, help quickly recover after a crash). I like to have my Korg NanoKONTROL handy for when I really just need quick volume control or something like that. I typically have a directory with a ton of SynthDefs that I tweak and run with patterns.
Hopefully this is helpful to some of the OSX based live coders out there. Once this computer dies I’m switching to Linux and I’ll need to figure out an equivalent setup but I assume that shouldn’t be too difficult.