Sending a SynthDef to a Server
SynthDefs are templates for Synths, which are
sent to a server:
// define a SynthDef and send it to the server
(
SynthDef(\sine_example,
{
// define arguments of the SynthDef
|f = 100, a = 1|
// calculate a sine wave with frequency and amplitude
var x = a * SinOsc.ar(f);
// send the signal to the output bus '0'
Out.ar(0, x);
}).send(s);
)
Create a Synth from a SynthDef
Once a SynthDef has been sent to the server,
instances can be created:
// create a synth from the SynthDef
~my_synth = Synth(\sine_example, [\f, 1000, \a, 1]);
// create another synth from the SynthDef
~another_synth = Synth(\sine_example, [\f, 1100, \a, 1]);
Changing Synth Parameters
All parameters defined in the SynthDef of running synths can be changed,
using the associated variable on the client side:
// set a parameter
~my_synth.set(\f,900);
Removing Synths
Running synths with a client-side
variable can be removed from the server:
// free the nodes
~my_synth.free();
~another_synth.free();