I’ve learned that I can’t predict where my curiosity will lead me or what obsessions will take hold of me. For instance, six months ago I did not suspect I would soon be devoting most of my time to learning Csound, a computer programming language for music, and yet today I do just that. This is all the more surprising given that six months ago I knew nothing about computer programming.
Let me explain how I arrived at this point. I’m an academic librarian by trade, and over the past few years I’ve taken on increasingly technical responsibilities at work, such as managing the library's website and the college's digital repository. I love these new responsibilities, but earlier this year I found that my lack of programming skills was limiting how much I was able to do on my own. I could only go so far on a project before I’d have to ask IT for technical support.
Frustrated by this situation, I decided to take the Introduction to Computer Science course at Carleton College, which is where I work. This course teaches you how to program using Python. I had tried to teach myself Python twice before, but I always ran out of steam before learning anything useful. In March I began attending the classes, reading the textbook, and doing the assigned exercises.
Immediately I could tell that computer programming was up my alley. I always loved doing problem sets back when I was in school, especially in math and physics. Each problem was a satisfying puzzle to solve. Writing and debugging computer programs was satisfying in the same way.
And then the unexpected and sublime obsession materialized as though it were the true, hidden purpose of my taking the course. A week or two into learning Python it occurred to me that there must be programming languages specifically for music. Perhaps I should investigate them, I thought, and learn one as a way to expand my understanding of computer programming.
With that I began looking for a programming language for music. I considered Max/MSP, the ubiquitous visual programming language for music, but ruled it out because 1) it is expensive and 2) I wanted to learn a text-based language rather than a visual one. Plus, I had attempted to learn Max/MSP ten years before and gave up at the time because it felt overwhelming.
I can’t recall when I first came across Csound, but at an early stage in my investigation I began to see its name come up again and again. I gathered that it was a text-based programming language for music, and, what’s more, my library had multiple textbooks devoted to it. At the same time, I learned of ChucK and SuperCollider, two programming languages with purposes similar to Csound. However, neither ChucK nor SuperCollider had very many textbooks devoted to them in my library. The fastidious learner in me prefers the thorough grounding in a topic one gets through the methodical reading of a textbook, so I chose to pursue Csound.
The purpose of this blog is to document my immersion in the Csound language and the wider world of computer music. I hope it might be helpful to anyone who's also getting started with computer music. In upcoming posts I’ll describe the way I’ve approached learning Csound, the resources that have been most helpful to me, and the exercises and projects I’ve undertaken along the way. How this blog will evolve over time is like where my curiosity will lead me next — anyone’s guess.