changed: - == Send/Receive Naming Conventions == ''Using $0+ & Spaces & Hierarchies'' It is often useful to create a hierarchy of names when patching. The most common example of this is the use of $0 when creating localized send/receives: one writes {{{[send $0-frequency]}}}, with "$0" as the "parent" and "frequency" as the "child". We separate hierarchical levels with a "-". For example, a "cutoff" parameter of a filter in the local namespace might be written {{{[receive $0-filter-cutoff]}}}. This also applies if one is using a different argument than $0, such as passing in "foobar" for $1: one would write {{{[receive $1-baz]}}} to get the full name of "foobar-baz". Sometimes a parameter is made up of more than one word. For clarity, use "_" to separate words, like {{{[receive $0-resonance_peak]}}}. ''Global Variables'' Due to the confusing bugs that can result from widespread usage of global variables, they are written in all caps, like {{{[send SSSAD_ADMIN]}}}. Use "_" as above to separate words. ''Argument passing'' If passing the arguments of a parent abstraction to a child, place them such that they reside in the same $# slots as they do in the parent (when possible). E.g., if the parent was called like {{{[parent a b c]}}}, and {{{[child]}}} also needs "a b c" plus "x y z", design and call {{{[child]}}} so it can be called as {{{[child a b c x y z]}}}. ''Channel naming'' For the special case of {{{[send~/receive~]}}} or {{{[throw~/catch~]}}} pairs with multiple parallel channels, name your channels with numbers rather than "left" or "right". E.g., {{{[throw~ $0-wavetable_osc-ch1]}}} and {{{[throw~ $0-wavetable_osc-ch2]}}}. This makes it easier to later expand your patch for higher-than-2-channel audio.