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-ID
This 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-NAME
This is a string value representing the part name that is to appear on the score.
PART-ABBREV
This is a string value representing the abbreviated part name that is to appear on the score.
PART-INSTR
This 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-OPTS
This 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.