<-- previous page Table of Contents Index next page -->
There are a number of symbols and other markings that appear frequently
in music and 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:
mark_type place staff(s) distance aligntag : begintime text duration;
The mark_type can be any of the following:
Mark_type Meaning rom text in roman font ital text in italic font bold text in bold font boldital text in bold-italic font mussym music symbol (fermata, coda sign, etc.) phrase phrase mark < crescendo "hairpin" > decrescendo "hairpin" octave play 1 or more octaves higher or lower pedal piano pedal marks
The place is as for lyrics: above, below, or between. There are some restrictions, as summarized below:
place allowed mark_type above below between default rom yes yes yes above bold yes yes yes above ital yes yes yes above boldital yes yes yes above mussym yes yes yes above phrase yes yes no varies < yes yes yes above > yes yes yes above octave yes yes no none pedal no yes no below
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, unless the defaultphraseside parameter is set to force a side.
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.
Here are some examples:
rom 3: boldital below 1: < between 3&4: pedal below 2: octave above 3: phrase 3,4: mussym above 2-3, 5: ital between 1&2, 3&4:
The
distance 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.
score dist=2 music rom above 1: 1 "normal dist"; rom above 1 dist 4: 2 "dist 4"; // higher than usual rom above 1 dist 0! : 3 "forced 0"; // lower than normal mussym above 1 dist -2! : 4.5 "rr"; // forced down into staff 1: c;;;; endbar
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";
The grace note backup, if any, must occur before the
stepsize offset, if any.
For example:
1: c; [grace] 8d; []e; []f; 2.g; ital above 1: 2(-3)[+1] "cresc."; bar
For items that include a duration, the duration tells the ending point of
the item. A duration is specified by:
til Mm + N
This can optionally be followed by
a grace backup 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:
mark_type text duration rom required optional bold required optional ital required optional boldital required optional mussym required allowed on tr only phrase not allowed required < not allowed required > not allowed required octave required optional pedal * or nothing not allowed
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.
above (from bottom up) phrase mussym octave rom bold ital boldital < > lyrics endings rehearsal marks below (from top down) phrase mussym octave rom bold ital boldital < > lyrics pedal between (from bottom up) mussym rom bold ital boldital < > lyrics
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.
score beamstyle=2,2 music rom above 1: 1 "Allegro con brio"; ital above 1: 3 "dolce"; 1: [with .]... 8g-;a-;b-;c;g;a;g;a; < below 1: 1 til 2.8; boldital dyn below 1: 3 "mf"; > below 1: 3.3 til 4.8; bar rom above 1 align 17: 1 "Allegro con brio"; ital above 1 align 17: 3 "dolce"; 1: [with .]... 8g-;a-;b-;c;g;a;g;a; < below 1 align 3: 1 til 2.8; boldital dyn below 1 align 3: 3 "mf"; > below 1 align 3: 3.3 til 4.8; bar