I’ve been playing around with some new things, namely Google’s Go language and the SuperCollider music programming environment. Go, intended to be a systems language for writing long-running server processes, feels also apt to write sound applications (to me anyway). I started a SuperCollider project under the Republic of Nynex umbrella that I abandoned after my Go language prototype sounded terrible. Since I like the Go language so much more than the SuperCollider language, I think I’m going to start a new project to control the SuperCollider synth server from a Go program.
The SuperCollider programming environment is actually a totally separate process from the synthesizer. It compiles all your code into OSC messages that are then sent over TCP to the server process. There are many other systems that can interface with SuperCollider over OSC, and Go has no OSC implementation, nor any bindings to other OSC libraries. The first question to answer is whether to create an OSC implementation in Go or bind to an existing implementation with cgo.
I think I’ve nerded enough for everyone reading this though.