// Ctk intro ( // create a prototype object from the SynthDef parameters a = CtkNoteObject.new( SynthDef.new(\osc_2b, {arg freq = 440.0, dur = 1.0, attackdur = 0.01, releasedur = 0.01, amp = 1; var osc, env; env = EnvGen.kr( Env([0, 1, 1, 0], [attackdur, dur - attackdur - releasedur, releasedur], \lin), levelScale: amp, doneAction: 2); osc = SinOsc.ar(freq, 0, env); Out.ar(0, osc); }) ); ) // look at the arguments (slots) of the object a.args; // create a new instance of the object b = a.new; // look at its slots b.args; // change a slot value b.freq_(880); // access that slot b.freq; // change more than one slot in one shot b.dur_(3).amp_(0.7).releasedur_(0.2); // look at the slot values b.args; // now play it b.play;