definstrument {name | (name {keyword value}*)} ({parameters}+) {form}* [Macro]

Defines a CLM instrument and a note class of the same name for composing with the instrument. name is the name of the instrument, and may be specified as a list together with optional keywords that provide control over the exact behavior of definstrument. In addtion to the keywords suported by CLM, Common Music adds three keywords of its own:

:time-parameter {name | position | nil}
Declares that the parameter name or the parameter at position (zero-based) in parameters is the "start time" of the instrument. The default value is 0, which means that time is to be passed as the first argument to the instrument. If :time-parameter is nil then no time value is passed.
:printer {function}
Declares function to be the scorefile printer for the object. The default printer is clm-print, which prints floating point numbers rounded to three places and precedes unquoted envelope lists with an explicit quote. If specified, function is passed two arguments, the value to print and the stream.
:instrument-only {nil | t}
Determines if a Common Music event class is defined for the instrument. The default value is nil, which means that an event class is defined.

See Also:

CLM [Syntax], Working with CLM, tutorials/stella/fm.ins


Last Modified: 5-Mar-1998