ProxySynthDef synth def that wraps ugen graph

superclass: SynthDef

*new(name, func, rates, prependArgs, makeFadeEnv, channelOffset=0, chanConstraint)

name, func, rates, prependArgs: like in SynthDef.new

todo: add variants.

makeFadeEnv

if true it constructs a fader envelope and adds controls for gate and fadeTime

channelOffset

a constant offset that is added to the out number

chanConstraint

max numChannels for the synthdef. If ugenfunc returns a larger array, it wraps

*sampleAccurate_

use OfsetOut, if set to true (default: false)

for inner workings see [jitlib_fading]

// example

a = ProxySynthDef("xtest", { SinOsc.ar(400) * 0.1 });

a.send(s);

x = Synth("xtest");

x.release;

/*

if the resulting number of channels is larger than a given channelConstraint,

it behaves according to the rate: audio rate signals are wrapped around

a smaller channel size, control rate signals are not (the exceeding channels are left out)

*/