A PART object represents a written part in the score.
They are analogous to tracks in a MIDI sequencer or staves in any notation program,
though a part may actually represent more than one staff for instruments that require it.
PART objects are containers for NOTE,
REST and MARK objects
(and optionally TIMESIG and
KEYSIG object if they only apply to that particular part).
Each PART object also specifies an INSTR
object which contains specific information on how
to notate a particular instrument.
PART objects are passed to FOMUS by including them in the
PARTS list.
Constructor:
(MAKE-PART &key
:ID
id
:PARTID partid
:NAME name
:ABBREV abbrev
:INSTR instr
:EVENTS events
:PROPS props
:OPTS opts)
Copy Function:
(COPY-PART
part &key
:ID id
:PARTID partid
:NAME name
:ABBREV abbrev
:INSTR instr
:EVENTS events
:PROPS props
:OPTS opts)
Predicate Function: (PARTP obj)
Accessors:
OBJ-IDThis slot isn't used by FOMUS. The user may use it to store an ID value or some miscellaneous data.
PART-PARTID
This is a symbol or number used as an index or reference to identify the part.
It doesn't need to be unique--parts that share the same ID symbol are treated as a group.
When they appear in PARTID or
PARTIDS slots in classes
other than the PART class they are treated as references to a particular part or group
of parts.
PART-NAMEThis is a string value representing the part name that is to appear on the score.
PART-ABBREVThis is a string value representing the abbreviated part name that is to appear on the score.
PART-INSTRThis slot specifies an instrument for the part. All part must be associated with an instrument--if no instrument is given a generic default instrument will be chosen. Instruments provide important data for many of FOMUS's algorithms and determine at least several major aspects of score layout, including the number of staves a part has and whether or not pitches are to be transposed.
Instruments may be specified in one of several ways.
If a symbol is provided, it is used to lookup an instrument in a user-defined list
or FOMUS's own predefined list of instruments (see the INSTR-GROUPS
setting in the Settings chapter).
The slot may also contain an instance of an instrument object.
If a list is given, FOMUS expects the first element to be a lookup symbol for an instrument
and the rest of the list to be keyword/argument pairs specifying slots that are to be modified in the original instrument
(as if included in a call to COPY-INSTR.
If an integer from 0 to 127 is provided instead of an identifying symbol, FOMUS
interprets this as a MIDI program change number and will use the first instrument it finds that has this number in its
MIDIPRGCH-IM slot.
PART-EVENTS
This is a list of NOTE,
REST or
MARK objects.
TIMESIG and
KEYSIG objects may also be included in this list.
PART-PROPS
Part properties are specified in the same way that MARKS are specified.
They are settings that affect only the part they are included in.
See PART Properties for a list of these.
PART-OPTSThis is a keyword/argument pair list specifying options to be passed directly to the backend algorithms. Each backend has its own set of options that may be specified alongside options for any other backend. See the Outputs for more information.