<-- previous page     Table of Contents    Index    next page -->

Bar lines

Each measure must be ended with a "bar" of some kind. There are several kinds:
Keyword Meaning
bar ordinary bar line
dblbar double bar
repeatstart beginning of repeated section
repeatboth end of one repeated section and beginning of another
repeatend end of repeated section
endbar heavy double bar line used at end of song
invisbar no bar line printed
restart end staffs and begin anew

In addition, the bar and dblbar types can be preceded by the word "dashed" or "dotted" to produce dashed or dotted bar lines.

1: mr;
1: mr;
1: mr;
dashed bar
1: mr;
dotted dblbar
1: mr;
1: mr;
1: mr;
1: mr;

Picture of Mup output

When a repeatstart would end up at the end of a score, it will automatically get moved to the beginning of the following score. In that case, it isn't clear what kind of bar line you would like to have put at the end of the original score. By default, Mup will use an ordinary bar, but in some cases--like if the repeatstart begins a new section, or there is also a key change--you might want to have a dblbar instead. You can get a dblbar there by specifying dblbar in parentheses before the repeatstart:

(dblbar) repeatstart

Actually, you are allowed to specify any bar type in the parentheses, including dashed or dotted types, but dblbar or possibly invisbar are probably the only ones likely to be useful. If the repeatstart ends up in the middle of a score, so that it doesn't need to get moved to the beginning of the next score, the parenthesized bar type is not needed, so it is just ignored.

There is a bracketrepeats parameter that can be set that will cause Mup to draw brackets around repeated sections, to make them more obvious to the performer, which may be helpful when playing in dimly lit areas.

Sometimes music is printed without bar lines. The "invisbar" can be used in this case, to fulfill Mup's requirement to specify some sort of bar after every measure without actually printing bar lines.

The restart is a special kind of bar. It follows immediately after another bar line without any intervening music data. (That is, you can't have any notes. You can use score or staff context things, like changing time or key signature.) It would be most commonly used for something like a short coda.

staff 2

1-2: c;d;e;f;
rom above 1: 3 "D.C. al Coda";

// The restart follows a bar
// without any music data in between.

rom above 1: 1 "Coda";
1-2: f;e;d;c;

Picture of Mup output

There are several optional directives that can follow the bar line keyword. They can be specified in any order and are described below.

Bar line padding

One optional directive is padding. It can be used to force Mup to place extra white space to the left of the bar line. It is specified by the keyword "pad" followed by a number of stepsizes of padding to add. For example:

dblbar pad 3

would add 3 stepsizes of padding. One possible use would be if you wanted a different amount of gap on a restart than what Mup uses by default.

Bar line location tag

It is also possible to associate a location tag with a bar line. For example:

// Associate tag "_bar6" with bar line
bar =_bar6

// Do double bar with an extra stepsize of
// padding, and associate tag "q"
// with the bar line
dblbar pad 1 =q

The y coordinate of a bar line is not very useful. Special rules apply if a bar line happens to be placed at the end of a score. Any locations taken relative to the bar that would be to the right of the bar are treated as if the bar line were at the beginning of the following score, just beyond the clef and time and key signatures, if any.


First and second endings, etc. can be designated at bar lines. This is done with the keyword "ending," followed by a quoted string to use as the label for the ending that should begin at the bar line. An ending will span bars until either another ending is specified, the piece ends, or the special keyword "endending" is used. Examples:

bar ending "1."
repeatend ending "2-3"
endbar endending

The ending label will always be forced into 12 point times roman font. If you change font or size or include special characters in the ending label, the output is not likely to be aligned properly.

The "endingstyle" parameter controls where endings are placed. Endings cannot start at or cross over a restart bar.

When doing an endending, Mup will draw a vertical line at the end unless it is at a plain bar or an invisbar that is not at the end of the piece. Once in a while, you may want to override that. To do so, instead of specifying endending, you can specify openendending (to force Mup to not draw the final vertical), or closedendending (to force it to draw the final vertical).

Rehearsal marks

Rehearsal letters or numbers can be specified on any bar line. There are four formats:
rehearsal let
rehearsal num
rehearsal mnum
rehearsal "label"

In the first example, a rehearsal letter will be placed on the bar. The first occurrence of this will become rehearsal "A", the next "B", and so forth. The second format works in a similar fashion except that numbers are used rather than letters. With the third format, the current measure number is used. With the last format, any arbitrary string within the quotes will be used. The keyword "rehearsal" can be abbreviated to "reh" if you wish. Only one rehearsal mark is allowed on any one bar, but the types can be mixed throughout the composition. Note, however, that mixing "num" with "mnum" is likely to be very confusing, as would using "num" while the measnum parameter is set to "every N." The rehearsal marks can be intermixed with other bar options:

1: 1c;
dblbar reh num ending "1"
1: 1e;
repeatend pad 1 =_xyz reh let ending "2."
1: 1g;
bar rehearsal "Duet"
1: 1ce;
endbar endending

Picture of Mup output

The rehearsal marks are normally put directly above the bar line. However, if the bar line falls at the end of a score, the rehearsal mark will be placed at the beginning of the following score, after the clef, key signature, and time signature. The "endingstyle" parameter is used to determine which staffs get rehearsal marks. The "rehstyle" parameter specifies whether to put rehearsal marks inside a box or a circle or leave them plain.

By default, rehearsal marks are printed in 12 point Times bold, but the rehearsal keyword may be followed by a specification for fontfamily, font, and/or (size). Once specified, these remain in effect for any future rehearsal marks, until explicitly changed. Some examples:

bar rehearsal helvetica bold (14) let
repeatend reh newcentury num
invisbar reh rom (10) mnum

After all the options listed above, you may specify "dist N" where N is some number of stepsizes. This will override the dist parameter for determining how close to the staff to place the rehearsal mark. If the number is followed by a "!" Mup will place the mark exactly that far from the top of the staff, even if it overwrites other things; otherwise the value specifies a minimum distance.

rehearsal num dist 5     // at least 5 stepsizes away
reh bold "A1" dist 2 !   // exactly 2 stepsizes away

Setting the measure number

Mup keeps track of measure numbers automatically, but sometimes you may want to override this to set the current measure number to some specific value. This is done by adding mnum=number on a bar line, which will set the current measure number to the given number.

// Set the current measure number to 50
dblbar mnum=50

You can also tell Mup to adjust up or down from what it would otherwise count, by using a plus or minus sign instead of the equals sign, following by the number of measures to adjust by. So, for example, suppose you use invisbar in some way that causes Mup to not count something as a measure that you actually want to be counted. You could then use
invisbar mnum+1

Setting rehearsal letter or number

If you are using the "rehearsal let" or "rehearsal num" styles, you can set those to specific values too, similarly to how mnum can be set. This might be useful, for example, if you have a single input file that contains multiple songs or movements, and you want the rehearsal marks to start over at the beginning of each song or movement.

The rehearsal number can be set on any bar line using num=N, where N is a number, typically 1.

bar num=1

The rehearsal letter can be set in a similar way, using let="X" where X is either a single upper case letter, A to Z, or two upper case letters, AA to ZZ.
dblbar let="A" reh let

Hiding time/key signature and clef changes

Generally in printed music, when a time signature or key signature change occurs at the beginning of a score, these changes are also printed at the very end of the previous score, to make it clear there is a change coming up. Mup normally does this, but occasionally you may not want that behavior. Sometimes you may want to make a new score appear like the beginning of a new piece. If you wish to suppress the printing of time signature, key signature, and clef changes at the end of the preceding score, you can use the "hidechanges" keyword on the bar line at which the changes occur. Hidechanges cannot be used on a restart bar.

1: c;d;e;f;
// change time/key with normal treatment

score time=5/4 ; key = 1&
1: d;e;f;2g;
// don't show changes at end of previous score
bar hidechanges	


score time=6/4 ; key = 2#
1: d;e;f;2.g;

Picture of Mup output


Sometimes you may want to mark subdivisions of measures. For example, you may want to indicate that something in 7/4 time is to be interpreted as 3+4 or 4+3. Although you could indicate that with the time signature, this can also be done using the subbarstyle parameter. The general syntax of this parameter is

  subbarstyle = linestyle bartype appearance ranges time counts

The linestyle is optional, and can be dashed or dotted. The bartype is either bar or dblbar, and indicates whether to draw a single line or two lines.

The appearance is optional. When specified, it is in parenthesis, describing where the subbar should end vertically. Top and bottom specifications are given, with the word "to" between them. Each specification consists of the word top, middle, or bottom, indicating which line of the staff to draw relative to, optionally followed by a plus or minus sign and a number of stepsizes.

	(top to bottom)

means draw from the top line of the top staff in each range to the bottom line of the bottom staff in the range. This is the default if no appearance is given.
	(middle to middle)

would mean draw from the middle line of the top staff in each range to the middle line of the bottom staff in the range. As mentioned earlier, you can also specify adding or subtacting some number of stepsize on each. So
	(top-2 to bottom+2)

would draw from 2 stepsize below the top line of the top staff to 2 stepsizes above the bottom line of the bottom staff.

The range is similar to ranges for the barstyle parameter, so things like 1-2 or 1-4,8-12 or all.

Often you may want the subbar marks to span just a part of each individual staff, so the "ranges" will be just individual staffs.

The time keyword is required and must be followed by at least one count at which to draw the subbar. The time can include a decimal part. Multiple times are separated by commas. Examples would be time 3 or time 2.5,4.75

Subbars are only drawn on staffs where there is actually a note or rest at that count.

Multiple styles can be given. For example:

  subbarstyle=bar 1-4 time 2 dotted dblbar (top-1 to bottom+1) 5,6 time 4

Finally, you can use "between" as the appearance, to draw between staffs in the range.

  subbarstyle=dotted bar between all time 3

Once between is specified, it applies to all future styles in the parameter value, so if you want a mixture of between and not, specify all the not between first.

   <-- previous page    Table of Contents    Index    next page -->