Next: , Previous: Objects, Up: Reference

5.2 Events

Objects with times and durations are referred to in this documentation as “events.” There are four types of events in FOMUS: notes, rests, marks and measures. Note and rest events represent notes that appear in the score while mark events represent articulations, dynamics and other markings. A measure event specifically represent the first measure in which some change occurs at the metrical level (e.g., a key signature change, time signature change, or double barline).

All events have time and duration parameters. Times and durations are expressed in what is referred to in this documentation as “beats,” a unit which is (mostly) unassociated with rhythmic spelling until after FOMUS has finished processing everything. One beat represents a consistent unit of time irrespective of time signature, metronome markings or any other notational convention. The first time point in a score is always 0 (i.e., there are no negative time values).

Measures have a time and duration like any other event type and aren't defined using time signatures. A measure defined with a duration of 2, for example, occupies 2 beats regardless of whether it's a 2/4 or 4/8 measure or whether a beat is notated as a quarter note or an eighth note. It is possible to specify time signatures if desired, though this is slightly less flexible. By defining measures in terms of duration you can easily change time signatures, rhythmic spellings, and even manipulate the layout of measures in the score while leaving the essential musical information (the relative times and durations) intact.

Each frontend has a unique way of defining events along with their arguments. In .fms files all of the arguments are given as lists of parameters and values (see Tutorial). In CM, they can appear in processes and are sent to FOMUS like other scheduled events (a floating point time stamp is added automatically). In Pure Data, note events are sent by creating a fomus instance, passing parameters to the appropriate inlets and passing a bang message to the leftmost inlet to send the note event.

A complete list of FOMUS's events are given here:

•Measure Events
In FOMUS you only need to define a measure at points in the piece where a change occurs (e.g., the time signature, key signature, or some setting that changes the behavior for a whole section). FOMUS fills in all of the areas where measures aren't explicitly defined by repeating the ones that are. FOMUS also adjusts durations (and time signatures) to resolve conflicts. This means you can place measures wherever you want without regard to whether or not they cause overlaps. FOMUS automatically truncates or expands them as necessary.

By default, measures are assigned to all parts when they are created. To assign a measure to only a subset of parts (to create polymeters, for example), use the measparts setting.

•Note Events

•Rest Events
You should almost never need to create rest events—FOMUS creates all of the rests for you. One reason for defining one is to include a fermata in the score at some location. Rests can also have effects on some calculations such as the fill-forward and fill-backward durations mentioned above or the pruning of overlapping notes.
•Mark Events
A mark event represent a mark or a group of marks that exists separately from note or rest events. This allows you to generate patterns of articulations separately or attach spanner marks without having to calculate exactly which notes the begin/end marks belong to. The marks are applied to note events at a point in FOMUS's processing after voices have been sorted out. Two settings, left and right offer precise control over which note events are affected.

If a mark event contains a begin mark, this is only applied to a note or notes at the beginning of the mark event. End marks are similarly applied only to notes at the end time of the mark event. All other marks (i.e., non-spanner marks) are applied to every note that falls within the range of the mark event.

As mentioned above, a few spanner marks (like crescendo/decrescendo wedges) are unattached to any note events if detach is set to ‘yes’. This is accomplished by creating an invisible voice full of rests in the score and placing the marks in this voice.

5.2.1 Object Hierarchy

A diagram of how FOMUS's objects contain or reference each other is shown below.


Figure 5.1: FOMUS Object Hierarchy

This shows, for example, that a part “contains” an instrument (or references one) while a measure contains notes, rests and marks.