SynthDefs by combining modular parts.
Here is a class that makes this easier and more expressive. [jrh]
PatchSynthDef.tar.gz
////// this doesn't work reliably yet //////
it can be used like this:
s.boot; ( Instr(\sine, { arg freq=440, amp=0.1; SinOsc.ar(freq) * amp }); Instr(\panner, { arg input, pan=0; Pan2.ar(input.asArray.sum, pan) }); ) PatchSynthDef("test", [\panner, [\sine, 700], 0]).store; x = Synth("test"); x.set(\out, 4); x.set(\out, 0); x.release; PatchSynthDef("test", { arg freq=800; [\panner, [\sine, freq * [1, 1.2], 0.1], 0] }).store; x = Synth("test"); x.set(\freq, 500); Pbind( \instrument, \test, \degree, Prand([0, 3, 5], inf), \dur, 0.3 ).play;