A TIMESIG
object indicates a time signature change in the score.
They may also be used to indicate special barlines and a few other changes.
FOMUS uses TIMESIG
objects to determine where to place measures and
how to format the events that appear in them.
If new time signatures appear in the middle of a measure, FOMUS either splits the measure
or expands it to a larger size depending on the values of AUTO-OVERRIDE-TIMESIGS
and MIN-AUTO-TIMESIG-DUR
.
Each time signature either specifies or implies a value that specifies what notational value is equivalent to 1 "beat" duration.
FOMUS uses this value to determine how all durational events are notated and where they appear in the score.
Unless otherwise indicated, all offsets and durations are expressed in beat units.
See the BEAT
slot for information on how to specify it.
Time signatures are passed to FOMUS by including them either
in the GLOBAL
list or the EVENTS
slot list of a PART
object.
TIMESIG
objects listed inside a part apply only to that part
(unless the PARTIDS
slot
indicates otherwise).
This method most likely won't be used.
TIMESIG
objects in the GLOBAL
list affect parts according to the contents of their PARTIDS
slot values.
A symbol or list of symbols in the PARTIDS
slot applies the time signature to the parts
that match those symbols.
A default PARTIDS
slot value of NIL
indicates that the time signature be
applied to all parts that don't have any other time signature specified at that exact offset.
This way you can specify that a certain TIMESIG
object be applied to only several
PART
objects while another TIMESIG
object by applied to all of the remaining parts.
Constructor:
(MAKE-TIMESIG &key
:ID
id
:PARTIDS partids
:OFF off
:TIME time
:COMP comp
:BEAT beat
:DIV div
:REPL repl
:PROPS props
)
Copy Function:
(COPY-TIMESIG
timesig
&key
:ID id
:PARTIDS partids
:OFF off
:TIME time
:COMP comp
:BEAT beat
:DIV div
:REPL repl
:PROPS props
)
Predicate Function: (TIMESIGP
obj
)
Accessors:
OBJ-ID
This slot isn't used by FOMUS.
TIMESIG-PARTIDS
This is a reference to a particular part or group of parts.
If the value of this slot is NIL
, the time signature is applied to
all parts that don't have some another TIMESIG
object
defined for them if this TIMESIG
object is included in the
GLOBAL
list.
If the TIMESIG
object is in a
PART
object's EVENTS
slot,
the time signature is applied to the part.
If the value is a symbol, number, or list of symbols or numbers, these values are used to lookup which part or parts the event belongs to.
TIMESIG-OFF
This is a number (real, ratio or integer) specifying the absolute position for the onset for this note.
The offset is measured in "beats," which may indicate different notational positions depending on
previous time signatures and what values are present in their BEAT
slots.
The number must be precise and "notatable" (floating point numbers are not recommended and values like 10/3 that don't
occur on regular beat divisions are currently impossible for FOMUS to notate).
TIMESIG-TIME
This is a required list of two integers, specifying the numerator and denominator of the printed time signature.
TIMESIG-COMP
If this slot is set to T
, indicates that the measure is a compound meter.
FOMUS then derives the beat value from the denominator of the time signature.
Setting this to T
or NIL
always overrides whatever default action is
specified in the AUTO-TIMESIG-COMP
setting.
TIMESIG-BEAT
The BEAT
slot value determines how events are mapped from beat units to notational durations.
It is a ratio that specifies what notational duration is equivalent to 1 beat.
This duration is expressed as a fraction of a whole note (1/4, for example, specifies a quarter note, 1/2 specifies
a half note, and 3/8 specifies three eight notes).
If the time signature is a compound time signature, the value of this slot is ignored and the
beat value is calculated from the denominator (for example, the beat value of a 12/8 signature is 3/8).
If the slot contains the default value of NIL
, the beat value is either the
value of DEFAULT-BEAT
or it is calculated from the
denominator (a non-compound 4/8 or 7/8 time signature would have a beat value of 1/8).
The beat value of a measure effects how notes are are divided and laid out.
TIMESIG-DIV
This is a single list or list of lists containing ratios or integers that add up to the total number of beats
in a measure (as specified by either the TIME
or
BEAT
slots).
It represents all of the choices available for dividing up measures following this time signature.
If the slot contains the default value of NIL
, FOMUS looks up
divisions first in a user-supplied table if one exists (see the DEFAULT-MEAS-DIVS
setting) then in FOMUS's default table.
A value usually only needs to be specified here if the user wants to force FOMUS
to divide measures in a specific way rather than choosing between several choices.
The following example shows what might be specified for a 7/8 meter:
As another example, setting the TIMESIG-DIV
slot to '(1 1 1)
in a 3/4
time signature forces FOMUS to beam measures in groups of 3 (the default is equivalent to
a TIMESIG-DIV
setting of '((2 1) (1 2))
)/
TIMESIG-REPL
This is a list of TIMESIG
or
TIMESIG-REPL
objects
that are chosen to replace this TIMESIG
object when FOMUS
needs to change the length of a measure.
This gives the user some control over how FOMUS fudges measures to make them fit.
When FOMUS changes the length of a measure, it will look here first and then in
the (not implemented yet) setting for a replacement that fits (has the correct number of beats).
If none is found, FOMUS will create a new TIMESIG
object
from the current one, modifying the DIV
slot by adding on extra beats if necessary.
TIMESIG-REPL
objects are simply
TIMESIG
objects with missing
OFF
,
PARTIDS
and
REPL
slots, all
of them unnecessary in this context.
The use of these is optional.
If TIMESIG
objects are given, these slots are just ignored.
TIMESIG-PROPS
This slot behaves like the MARKS
slot in
NOTE
or
REST
objects.
Extra time signature or measure properties may be specified here.
See FIXME for more details and the MARK
class for an example of how to specify properties.