SynthDesc description of a synth definition

Contains a description of a SynthDef, including its name, control names and default values.

Information is also stored on its outputs and inputs and whether it has a gate control.

*read(path, keepDefs, dict)

adds all synthDescs in a path to a dict

SynthDescs are created by SynthDescLib, by reading a compiled synth def file.

SynthDescLib.global.read("synthdefs/default.scsyndef");

SynthDescLib.global.synthDescs.at(\default)

name returns the name of the SynthDef

controlNames returns an array of instances of ControlName, each of which

have the following fields: name, index, rate, defaultValue

SynthDescLib.global.synthDescs.at(\default).controlNames.postln;

hasGate is true if the Synthdef has a gate input

msgFunc the function which is used to create an array of arguments for

playing a synth def in patterns

SynthDescLib.global.synthDescs.at(\default).msgFunc.postcs;

SynthDescs are needed by the event stream system, so when using Pbind, the instruments' default parameters are derived from the SynthDesc.

aSynthDef.store and aSynthDef.memStore also create a synthDesc in the global library. .store saves a synthdef file on disk (like .load); .memStore creates the synthDesc wholly in memory and sends the synthdef to registered servers.

(

SynthDef("test", { arg out, freq, xFade;

XOut.ar(out, xFade, SinOsc.ar(freq))

}).store

);

SynthDescLib.global.browse; // browse the properties of SynthDescs