Using computers to make music goes way back for me. Back to the Soundblaster 8-bit cards. Right around the time MIDI became a thing. I remember trying to cobble together a program that would let me record my guitar and finding out that if you weren’t really careful, the computer could mangle your stuff in a big, bad way. Sometimes, it was really, really cool.

It was later, much later, that I discovered things like Csound. I didn’t really have access to that kind of computing until college, so it’s not a surprise. When I first started poking at Csound I couldn’t really figure out what was so neat about it. Writing out instruments seemed like something that a math major would do and there were a lot of “gaps in my learning” when it came to how to work with certain functions. After all, most of my coding had been algebraic in nature. I didn’t do a whole lot with trig. That didn’t stop me. I sat down and did what I (still) do best: hack.

I looked at the documentation for the opcodes and figured out how to make an ADSR envelope over an oscilator. Experiments took me into FM synthesis and trying to recreate the Moog sounds of old. I didn’t learn quickly, but I produced results that I liked up front. That kept me hooked.

It’s still very unsatisfying. Code up an instrument. Make a bunch of scores that are the musical equivalent of test harnesses. Then compile. And wait. And wait. And wait. There used to be a lot of waiting. Now? That stuff renders FAST. It’s awesome (in the dictionary sense of the word).

Making scores was always really painful. But… Over time… Other people felt like I do. There were probably more and more creative people in the room and more and more of them started looking for ways to leverage this powerful synthesis language that weren’t as painful. One of the products was a set of Python bindings for Csound. That right there? That has my attention! I can build orc files all day and then build out the scores in Python. That means things like loops are easier. Layers are simpler. It all, honestly, makes a lot more sense to me in that arena.

So I’m back at it. I’ve been playing with some ambient sounds. Digging in to granular synthesis again. I’ve even started to learn how to use Cabbage so that I can make Csound instruments that can be used in Logic. How badass is that?

Sitting here now, listening to about 4 minutes that I pulled together over the course of the day is really gratifying!

One of the things that I’d forgotten is how much I love using the computer to generate “random” events. That is to say, feed it a seed and get a result. Changing the seed can change everything. The texture. The arrangement. It becomes powerful. One could just run with an epoch as the seed and go full John Cage, but that’s not really my thing. I appreciate the techniques, but I want to like what I make, so I apply my tastes and desires to the work. It’s still cool to see what happens. From the first time I used Max and pumped a random number into a MIDI control that pushed out to a synth, I was kind of hooked on the indeterminism of it all. It makes pads more interesting and ambient sounds wilder. Feed it to granular synthesis techniques and stuff gets really interesting. The textures can be so stark.

It feels good to be composing again. Making music. Using tools I enjoy to make music that I love.

Another Spiral is coming up shortly.

A terminal window with the output from Csound as it compiles a new piece.
A terminal window with the output from Csound as it compiles a new piece.