Sonificator
A Java Framework for writing Applications that use SuperCollider as Sound - Engine
Talk by: Christian Mühlethaler and Alexander Schuppisser Software written by: Christian Mühlethaler, Alexander Schuppisser and Jean-Claude Summermatter
Sonificator A Java Framework for writing Applications that use - - PowerPoint PPT Presentation
Sonificator A Java Framework for writing Applications that use SuperCollider as Sound - Engine Software written by: Talk by: Christian Mhlethaler, Christian Mhlethaler and Alexander Schuppisser and Alexander Schuppisser Jean-Claude
Talk by: Christian Mühlethaler and Alexander Schuppisser Software written by: Christian Mühlethaler, Alexander Schuppisser and Jean-Claude Summermatter
a node tree on the
0 and 1 are groups 2 - 6 are synths execution order: deep
Synths and busses.
( SynthDef("sine", { //name of the synthdef arg freq=500, out=0; //two control parameter var osc;
Out.ar(out, osc);//send output to audio bus “out” }).writeDefFile; //compiled and written to disc )
quits the server
displays OSC messages
type (continued)
starts or stops node execution
set a node's control value
creates a new synth from the specified SynthDef
s = Server.local; s.boot; ( SynthDef("sine", { arg freq=800; var osc;osc = SinOsc.ar(freq, 0, 0.1); Out.ar(0, osc); }).writeDefFile;) s.sendSynthDef("sine"); s.sendMsg("/s_new", "sine", 1000, 1, 0); s.sendMsg("/n_free", 1000); s.quit;
objected oriented language
compiler for SynthDefinitions
interpreter
main ideas
CPS Csound Grainwave HTM Intakt Max/MSP Open Sound World Pd ... Picker The Slidepipe SuperCollider Reaktor (Native
RTMix Sodaconstructor SpinOSC Squeak (via Siren) Source: http://www.cnmat.berkeley.edu/OpenSoundControl/
two examples that
Sonificator with three
SCLang and
OSC - Layer (continued)
OSCString, …
public public class class First { public public static static void void main(String[] args) throws throws Exception{ //the port that finally send and receive osc messages, wrapped intoudp OSCPort port = new new OSCPort(); //create the sine node OSCMessage newSine = new new OSCMessage( "/s_new", //command new new OSCType[] { new new OSCString("sine"), //SynthDefName new new OSCInt(1000), //id new new OSCInt(0), //addAction new new OSCInt(0)}); //int - add target ID //send the new sine port.send(newSine); //a glissando int int max = 1000; for for(int int i = 0; i < max; i++){ //create the new message to set the new pitch OSCMessage value = new new OSCMessage( "/n_set", //command new new OSCType[] { new new OSCInt(1000),//id new new OSCString("freq"), //what new new OSCInt(1000+i)//value }); port.send(value); try try { Thread.sleep(5); } catch catch (InterruptedException e2) { e2.printStackTrace(); } } //freeall OSCMessage freeAll = new new OSCMessage("/g_freeAll", new new OSCType[] {new new OSCInt(0)}); port.send(freeAll); System.exit(0); } }
sound modules are connected
together
Generators: generate sound Processors: modulate sound GrainRhythm and GrainLine:
lives on SCLang
Using library and code from sample application of http://jpcap.sourceforge.net/
Using Java3D from http://www.blackdown.org/