I started working on a SuperCollider client package for Google Go in late March of this year. I'm doing this for fun, but also because I love the power of scsynth, loathe programming with sclang, and love programming with Go. In this post I'll talk about where the project is right now and where I'd like it to go. I'm going to assume a fair amount of knowledge about how SuperCollider works, I recommend reading these two pages: * "Client vs. Server":http://doc.sccode.org/Guides/ClientVsServer.html * "Unit Generators and Synths":http://doc.sccode.org/Guides/UGens-and-Synths.html
h2. Why Go? Go is # Easy to learn # Relatively fast h2. What is a SynthDef? Every sound that you create with SuperCollider is defined with a synthdef. Here is a synthdef (expressed in sclang) that generates a 440Hz sine tone:SynthDef('simple', {
Out.ar(0, SinOsc.ar(440));
});
SynthDef('simple', {
Out.ar(0, SinOsc.ar(440));
}).add;
x = Synth.new('simple');
def := NewSynthDef("simple", func(p *Params) {
return Out.Ar(0, SinOsc.Ar(440));
})