Les 6: SuperCollider - OSC
Hier de code van de les van vandaag over OSC
s.boot;
//bouw een synthdef met een kamfilter
(
SynthDef(\naam,{ | freq=220,amp=0.5,cutoff=220 |
var in, sig, env;
env = EnvGen.ar(Env.perc(0.01,0.1));
in = WhiteNoise.ar(env);
sig = CombC.ar(in,0.2,1/freq,1,0.5);
sig = BLowPass.ar(sig,cutoff);
DetectSilence.ar(sig,doneAction:2);
Out.ar(0,sig);
}).add;
)
//testen om de synth af te spelen
Synth(\naam,[\freq,110]);
//open een udp-poort
thisProcess.openUDPPort(9001);
//maak een osc-functie om OSC-data binnen te krijgen
//zorg dat je de variabele waar je het in opslaat
//eerst leeghaalt, zodat oude functies niet door blijven gaan
//osc-data komt als array binnen
(
~oscfunc.free;
~oscfunc = OSCFunc({ |message|
Synth(\naam,[
\freq,message[1],
\amp,message[2],
\cutoff,message[3]
]
);
},'/synth');
)
//bonus: soort van for-loop
10.do({ | i |
i.postln;
});