TEMPO, DYNAMIC MARKS, ORNAMENTS, ETC.

General information

There are a number of symbols and other markings that appear frequently
in music, which are normally associated with a particular time or place in the
composition. There are several classes of such symbols, all of which are
handled by Mup in a somewhat similar fashion. The general format of these
statements is:

Octave marks
must include a place of above or below.
For all the other mark_types, the place is optional. For
phrase,
if place is not specified, Mup determines it
on a case-by-case basis depending on the location of the notes.

As with musical data or lyrics, the staff can be a single
number or may include lists and ranges. In the case of "between",
staff numbers must be in pairs, separated by an "&", with the second
staff number one greater than the first.

The staff can also be specified by the keyword "all," in which
case the mark will be placed above the top visible staff or below the
bottom visible staff.

Thedistance is optional. It is specified by the keyword "dist" followed
by a number. This number overrides the
dist,chorddist,
or
dyndist
parameter value that would normally apply, and is given in stepsizes.
If the number is followed by a ! the items will be placed at exactly that
distance from the edge of the staff,
without regard for anything they might overwrite.
Otherwise the normal rules apply: the dist is a minimum value, and items
may be placed farther away than this to avoid colliding with other things.
If the ! is used, the number is allowed to be negative,
which allows you to place items inside the staff.
A dist cannot be specified with phrase or between.

The aligntag is optional, and allows forcing several items to
be placed at the same vertical position. This will be covered in more detail
a bit later.

After the colon comes one or more items to be printed. Each item contains
at least a begintime specification. Some may also contain a
text string
and/or
a duration. Each item ends with a semicolon. A newline ends the list of items.

The begintime describes where in time the item should be printed. It is
a number ranging from 0 to the numerator (top number)
of the
time signature
plus one.
0 refers to the bar line at the beginning of the current measure, 1 refers
to the first beat of the measure, 2 to the second beat, etc., with the
maximum value referring to the bar line which ends the measure. A "beat"
is whatever time value is given by the denominator (bottom number)
of the time signature.
For example, in 4/4 or 3/4 time, a beat is a quarter note, whereas in 6/8
or 9/8 time, a beat is an eighth note. Fractional values can be specified
using a decimal number. Thus 1.5 is halfway between beats 1 and 2,
while 2.66 is about 2/3 of the way between beats 2 and 3.
For
time signatures
that are the addition of two or more fractions, like 4/4 + 3/8,
a "beat" is given by the largest denominator.

Since grace notes effectively take zero time, special notation is used
to place something relative to a grace note. The begintime can be
followed by a number of grace notes to "back up" from the beat.
The number is a negative number enclosed in parentheses.

The beat time value can optionally be followed by
an offset, in stepsizes.
This offset is a number in square brackets.
The number must begin with a + or - sign.
It can optionally include a decimal point and fractional part.
A negative offset will cause the item to
be moved to the left, while a positive offset will cause it
to be moved to the right.
This offset is used as a final adjustment after all the other placement
has been done. A common use for this would be if you want to place something
slightly before the beginning of the first measure of a song. You could
then specify something like:

rom above all: 0 [-3.5] "Allegro";

which would place the "Allegro" 3.5 stepsizes left of the beginning
of the measure.

The grace note back up, if any, must occur before the
stepsize offset, if any.
For example:

would find the chord at or closest to count 2,
and back up 3 grace notes from there, then move right by 1 stepsize.

For items that include a duration, the duration tells the ending point of
the item. A duration is specified by:

tilMm + N

where M is a number of
bar lines
to cross, and N is a number of additional beats.
(An "m" is used because it counts the number of measures.)
If either of them is 0, it can be omitted,
but at least one of them must be non-zero.

This can optionally be followed by
a grace back up and/or an offset, like the start time.
The grace backup is a negative number in parentheses,
telling how many grace notes to back up. The steps
offset is a number in square brackets,
which must begin with a + or - sign,
and can optionally include a decimal point and fractional part.
A negative offset will cause the item to
be moved to the left, while a positive offset will cause it
to be moved to the right.
This offset is used as a final adjustment after all the other placement
has been done.
Here are some examples:

til 3 // until beat 3 of current measure
til 1m+2 // until beat 2 of next measure
til 1m // until next bar line
til 3m+2.8[-1.5] // 3 bar lines and 2.8 beats, then left 1.5 stepsizes

Whether the text and duration are allowed or required depends on the mark_type,
as summarized below:

If there are several items, such that they have to be stacked on top
of each other, all items of a particular class are placed from top to bottom
according to input order. The classes are done in the order
shown in the table below, unless the order is overridden by
the
aboveorder,beloworder,
or
betweenorder
parameters.

For example, for the above items, all phrases will be placed as close to the
staff as possible, then mussym items above them, then octave marks above
them, etc. However, if there are several mussym items that belong at the
same horizontal position, the first one entered in the input will be printed
above the second, the second one entered will be printed above the third, etc.
All of the "above all" items of a given class will be above the
items of that class for the top visible staff,
and all "below all" items of a given class will be below the
items of that class for the bottom visible staff.

Additional control of placement can be imposed by the
optional align tag.
This is the keyword "align" followed by a number between 0 and 10000 inclusive.
On a given score, all marks in the same placement order level and
having the same align tag value will be placed together,
so that they will all be aligned at the same vertical position.
An align tag can only be applied to text (rom, ital, bold, boldital)
and crescendo and decrescendo marks.
It can also be used on pedal, but only when the
alignped parameter
is set to n.
Among marks with the same placement order level,
those without alignment are placed first. Then those with alignment
are placed, in ascending numerical order of the align tag.
If any of the aligned marks also have a dist specified, the rightmost
such dist applies to all with that alignment tag, otherwise the
largest default distance is used. If any also have ! specified,
to force an exact distance, that applies to all.

If after placing a set of aligned marks, Mup determines that any of them
overlap horizontally, it will squeeze
the one on the left in an attempt to avoid the overlap--to a point.
If some overlap remains even after squeezing as much as is allowed by the
minalignscale parameter,
Mup will issue a warning. You can then adjust things yourself if you wish.

Here is an example showing the impact of using alignment. The two measures
are the same, except the second uses alignment tags.
Note that since in this example only a single align tag value
is used for above and one for below, there is no need for specifying an
order among alignment tags, so the numeric values can be arbitrary.