List of orchestra members for CD cover (please CONFIRM by end of Tuesday 31st March 2015):
Jamie Beverley
Robert Feurtado
Sam Godfrey
Tanya Goncalves
Aaron Hubbell
Ian Jarvis
Aaron Hutchinson
David Ogborn
Jason Rule
Franco Simões
Cameron Taylor

Track titles and durations for the EP:
1. everybody gets a cable (SuperCollider) 8:27
2. swirl (Tidal/extramuros; live at the Factory) 7:32
3. ghost thread (SuperCollider) 8:17
4. introducing the orchestra (Tidal/extramuros; live at the Factory) 11:08

Thank yous to be printed on EP cover:
Love and gratitude to all past and future members of the Cybernetic Orchestra, our friends, family and supporters, the live coding community, McMaster University (especially Communication Studies and Multimedia, Humanities Media and Computing, Research and High Performance Computing Services, and the Faculty of Humanities), the Factory Media Centre, the rest of Hamilton's James Street N scene, James McCartney, Alex McLean and everyone who has ever contributed to SuperCollider or Tidal, the creators of and contributors to node.js, 0mq and share.js, logo creator Amy McIntosh, Eldad Tsabary, Jacques Carette, Mark Guzdial, Scott Wilson, and... you - for listening!

Sign-up for a solo live coding set at the CD release party (put your name here):
d0kt0r0
Tanya Goncalves
Jamie Beverley
Cameron Taylor
frAncIs

Code Ideas (SuperCollider)

Kick


Backbeat




(

SynthDef(\bassDrum,

{

arg amp = 0.1, out = 0;

var sig, env;

env = Env.linen(0.010,0.015,0.020);

env = EnvGen.ar(env,doneAction:2);

sig = LFTri.ar(10,mul:amp);

Out.ar(out,env*sig);

}

).add;

)
(

Pbindef(\a,\instrument,\bassDrum).play;

Pbindef(\a,\dur,Pseq([0.25,0.75,1],inf));

Pbindef(\a,\db,24); gain control

Pbindef(\a,\out, [0,1]); should be coming out of speakers L R?

Pbindef(\a).play;

)



(

SynthDef(\drum,

{

arg freq = 55, amp = 0.1;

var signal;

signal = SinOsc.ar(freq:freq,mul:amp);

signal = signal * EnvGen.ar(Env.linen(0.001,0.05), doneAction:2);

Out.ar(0,signal!2);
}

).add;

)
Pbindef(\test,\instrument,\drum,\db,-7,\dur,2).play;

Pbindef(\test,\midinote,[35]).play

Pbindef(\test).stop


Pulse


TSH - when used with low "filt" numbers (like 100~500), it sounds like a drum.

(
SynthDef (\tsh, {

arg amp = 0.1, sustain = 0.5, filt = 1000;

var audio, env;

audio = PinkNoise.ar (mul:amp);

env = EnvGen.ar (Env.perc (0.01, sustain, 1), doneAction:2);

audio = HPF.ar (audio, filt);

audio = audio * env;

Out.ar (0, [audio, audio]);

}).add;

)
Pbindef (\b, \instrument, \tsh);

Pbindef (\b, \dur, Pseq ([0.25, 0.75, 1],inf));

Pbindef (\b, \filt, Prand ([100, 1000], inf));

Pbindef (\b, \db, Prand([-6], inf));

Pbindef (\b, \legato, 2);

Pbindef (\b, \sustain, 0.1);

Pbindef (\b).play;

DUSTY - can have interesting effects when you change the density of the synth - in Dust.ar (x). Parameters like room, mix and legatto also allows very different applications of the synth

(

SynthDef (\dusty,

{ arg amp = 0.1, freq = 440, sustain = 0.5, gate = 1, mix = 0.15, room = 0.15, damp = 0.5;

var audio, env;

audio = Ringz.ar (Dust2.ar(2), freq:freq, decaytime:0.1, mul:amp);

env = Env.adsr(attackTime:0.5,decayTime:0.5,sustainLevel:1,releaseTime:0.9);

audio = audio * EnvGen.ar (env, gate:gate, doneAction:2);

audio = FreeVerb.ar (audio, mix, room, damp, amp);

Out.ar (0, audio);

}).add;

)
Pbindef(\h,\instrument,\dusty);

Pbindef(\h,\midinote,Pseq([70],inf));

Pbindef(\h,\dur,4);

Pbindef(\h, \db, -10);

Pbindef(\h, \mix, 0.5);

Pbindef(\h, \room, 0.7);

Pbindef(\h,\legato,1.5);

Pbindef(\h).play(quant:4);

Harmony/Resonance


BASIC
(

SynthDef (\basic, {

arg amp = 0.1, freq = 440, sustain = 0.1, room = 0.15, mix = 0.25, damp = 0.5, freq2 = 110;

var audio, audio2, env;

audio = SinOsc.ar (freq - freq2, mul:amp);

audio2 = Saw.ar (freq, amp);

env = EnvGen.ar (Env.linen (0.01, sustain - 0.01, 0.2), doneAction:2);

audio = audio * env;

audio2 = audio2 * env;

audio = FreeVerb2.ar (audio, audio2, mix, room, damp, amp);

Out.ar (0, [audio, audio]);
}).add;
)

Pbindef (\x, \instrument, \basic);

Pbindef (\x, \dur, 0.25);

Pbindef (\x, \midinote, Pseq([35, 50, 40, 64], inf));

Pbindef (\x, \mix, 0.2);

Pbindef (\x, \room, 0.7);

Pbindef (\x).play;

LEAK - very simple, but has a cool filter (leak) that can be controlled by the argument \coef

(

SynthDef (\leak, {

arg freq = 440, amp = 0.1, coef = 0.995;

var audio, env;

audio = LFPulse.ar (freq, 0.5, 0.5, amp);

audio = LeakDC.ar (audio, coef, amp);

env = EnvGen.ar(Env.linen (0.01, 0.2, 0.01), doneAction:2);

audio = audio * env;

Out.ar (0, [audio, audio]);

}).add;
)

Pbindef (\m, \instrument, \leak);

Pbindef (\m, \dur, 0.5);

Pbindef (\m, \midinote, Pseq ([42, 54, 66], inf));

Pbindef (\m, \db, -20);

Pbindef (\m, \coef, Pseq ([0.1, 0.3, 0.5, 0.7, 0.9], inf));

Pbindef (\m).play;

GLITCHY - this one is very flexible because of the parameters that can change the audio (numharm, filt [HPF])

(

SynthDef (\glitchy,

{ arg freq = 440, amp = 0.2, sustain = 0.5, numharm = 15, filt = 1000;

var audio;

audio = Blip.ar (freq: freq, numharm: numharm , mul:amp);

audio = audio * EnvGen.ar (Env.perc (0.01, sustain-0.01, 1), doneAction:2);

audio = HPF.ar (audio, freq:filt);
Out.ar (0, audio);

}).add;

)


Pbindef (\x, \instrument, \glitchy);

Pbindef (\x, \db, Prand([-12,-10,-14,-6],inf));

Pbindef (\x, \midinote, Pwhite (20,40));

Pbindef (\x,\dur,Prand([1, 0.5], inf));

Pbindef (\x, \legato, 1.5);

Pbindef (\x, \numharm, Pwhite(10, 15));

Pbindef (\x, \filt, Pseq([100, 200, 400], inf));

Pbindef (\x).play;

Texture


BUZZ -

(

SynthDef (\buzz, {

arg freq = 440, amp = 0.1, room = 0.15, mix = 0.25, numharm = 10;

var audio, env;

audio = Blip.ar (freq, numharm, amp);

env = EnvGen.ar (Env.perc (2, 0.1), doneAction:2);

audio = audio * env;

audio = FreeVerb.ar (audio, mix, room, 0.5, amp);

Out.ar (0, [audio, audio]);

}).add;

)
Pbindef (\i, \instrument, \buzz);

Pbindef (\i, \db, -10);

Pbindef (\i, \dur, 1);

Pbindef (\i, \room, 0.7);

Pbindef (\i, \mix, 0.2);

Pbindef (\i, \legatto, 1.5);

Pbindef (\i, \numharm, 100);

Pbindef (\i, \midinote, Pseq ([30, 42, 54], inf));

Pbindef (\i).play;

Other

Panning:
Adding the Pan2.ar() UGen to your SynthDefs will provide an easily accessible parameter for panning

SynthDef(\click, { arg amp = 0, pan=0, dur = 0.3, lpf = 1000;
var sig, env;
sig = LPF.ar(BrownNoise.ar(),lpf);
env = EnvGen.ar(Env.perc(0.01,dur),1, doneAction: 2);
Out.ar(0, Pan2.ar(sig*env, pan, amp))

}).add


Pbindef(\c, \instrument, \click, \delta, 0.5, \amp, -20.dbamp); set delta and amp
Pbindef(\c).play;
Pbindef(\c, \pan, Pseq([0,-1,0,1],inf)); the range is between -1 and 1 with 0 being in the middle
Pbindef(\c, \pan, Prand((-1.0,-0.9.. 1),inf)); randomly choose a pan position between -1 and 1 using 0.1 as the base unit
Pbindef(\c, \lpf, 1000); change the low pass filter cutoff
Pbindef(\c, \dur, 0.1); change the duration of the release of the percussion envelope