The Living Thing / Notebooks :


a less irritating audio programming language

CabbageStudio in action

Cabbage Studio for Csound is an alarmingly modern experience for people used to the classic Supercollider UI, which looks like ERROR: Message 'foo' not understood. RECEIVER: nil. (sic)

Csound is an audio coding language. It is Supercollider’s uncle by marriage. Actively developed. Eccentric. Permissive licensing. Smallish. Clean API. Thus, it works beautifully with other languages, which is very unusual.

Learning resources

There are various books:


Check out this minimal invocation of the csound api.

#include "csound.h"
int main(int argc, char **argv)
  // Create Csound.
  void *csound = csoundCreate(0);
  // One complete compile/perform cycle.
  int result = csoundCompile(csound, argc, argv);
  if(!result) {
    while(csoundPerformKsmps(csound) == 0){}
  // Destroy Csound.
  return result;

You’ll need this API capability, because its interactive capabilities are, AFAICT, minimalist; a decent external sequencer is necessary for live work.

Csound committer Michael Gogins has put it to me that javascript is natural for this niche, and indeed, he has written a lot of code to this end.

Examples of various Foreign Function Interface invocations (lua, python, go) are in the manual. There is a repository of such examples, in fact.

IDEs, front-ends

There are in fact many frontends.

In addition to Cabbage, mentioned above,


Things I am currently reading: