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-IDThis 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-TIMEThis 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.