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

SHAPED NOTES

If you intend to only use the usual system of noteheads, you can skip over this section on shaped notes. If you wish to use less common notehead shapes, like X-shaped notes, rather than normal noteheads, or want "shaped note" music that is often used for "Sacred Harp" style music, sometimes also called "fasola notation," then this section will explain how you can do that.

Headshapes context

The headshapes context is used in conjuction with the noteheads parameter to determine what shapes will be used when printing noteheads. It is rarely necessary to include a headshapes context in your music, since Mup already has the most common values built in, so generally you just need to use the noteheads parameter to access them. However, it is still important to understand what the headshapes context can contain, to understand how the built-in values work.

The headshapes context defines, for a given head shape name, what specific notehead characters to use for the notes of various durations. It contains one or more pairs of strings. The first string in the pair gives a name for a set of notehead shapes. The second string contains a space-separated list of the names of 4, 5, or 6 notehead characters to use for that head shape name. The first shape in the list is used for quarter notes and shorter, the second for half notes, the third for whole notes, and the fourth for double whole notes. If there is a fifth, that is used for quadruple whole notes. If there is a sixth, that is used for octuple whole notes.

If an upside-down version of the character is to be used for stem-down notes, the name is prefixed by "u?" (The "u" stands for "upside-down" and the question mark is intended to be mnemonic for the fact that the upside-down version will only be used part of the time, namely for stem-down notes.)

As was mentioned above, the most common mappings are already built into Mup. Here is the list of the pre-defined values. Pay particular attention to the first string on each line, since those are the names you will use in the noteheads parameter and for overriding chord and note shapes.
"norm" "4n 2n 1n dblwhole quadwhole octwhole"
"x" "xnote diamond diamond dwhdiamond quadwhole octwhole"
"allx" "xnote xnote xnote xnote xnote xnote"
"diam" "filldiamond diamond diamond dwhdiamond quadwhole octwhole"
"blank" "blankhead blankhead blankhead blankhead"
"righttri" "u?fillrighttriangle u?righttriangle u?righttriangle u?dwhrighttriangle quadwhole octwhole"
"isostri" "fillisostriangle isostriangle isostriangle dwhisostriangle quadwhole octwhole"
"rect" "fillrectangle rectangle rectangle dwhrectangle quadwhole octwhole"
"pie" "fillpiewedge piewedge piewedge dwhpiewedge quadwhole octwhole"
"semicirc" "fillsemicircle semicircle semicircle dwhsemicircle quadwhole octwhole"
"slash" "fillslashhead slashhead slashhead dwhslashhead quadwhole octwhole"
"allslash" "fillslashhead fillslashhead fillslashhead fillslashhead fillslashhead fillshlashhead"
"mensural" "mensurfilldiamond mensurdiamond mensurdiamond mensurdblwhole"

You can redefine these or define new ones if you wish. The name (the first of the two strings in the pair) can be almost anything you want. The four to six names in the second string must be taken from the list of valid notehead characters given below, or be characters you have defined yourself and for which you have provided a ystemoffset value (described in the section on user-defined symbols).

4n	             2n                 1n
dblwhole             quadwhole          octwhole
filldiamond          diamond            dwhdiamond
fillisostriangle     isostriangle       dwhisostriangle
fillpiewedge         piewedge           dwhpiewedge
fillrectangle        rectangle          dwhrectangle
fillrighttriangle    righttriangle      dwhrighttriangle
ufillrighttriangle   urighttriangle     udwhrighttriangle
fillsemicircle       semicircle         dwhsemicircle
fillslashhead        slashhead          dwhslashhead
xnote                altdblwhole	blankhead
mensurfilldiamond    mensurdiamond      mensurdblwhole
The righttriangle shape names can be prefixed by u? when used in the headshapes context, to indicate the upside-down version of them should be used when the stem is down. Note that u? cannot be used on any other notehead characters, since none of the others have a corresponding upside-down version.

As an example of how you could use the headshapes context, suppose you wished to use xnote for half notes and shorter, and diamond for longer notes. That is different than either of the built-in values "x" or "allx," but you could override one of them:

headshapes
	"x" "xnote xnote diamond diamond"

Another common case is if you want to use the alternate double whole note symbol. There are two very commonly used forms for double whole. One has a single vertical line on either side of an ellipse, the other has two vertical lines. Mup uses the one-line form by default, but if you prefer the two-line form, you can get that via:

headshapes
	"norm" "4n 2n 1n altdblwhole"

The blankhead does not print any head at all, it just leaves space as if there were a notehead. It might be used if for some reason you just want stems.

The use of "mensural" will also cause stems to be centered, as is appropriate for those noteheads.

Noteheads parameter

The noteheads parameter describes which notehead shape to use for each pitch in the scale. It can be specified in score, staff, or voice contexts. If you want to use the same shape for all pitches, (as is the case with standard notation), only one shape name is specified. Thus the default value for this parameter is

noteheads = "norm"

If you want to use different shapes for different pitches, the noteheads value needs to be a string containing a list of 7 shape names. They are listed from the "tonic" of the major key up the scale, with the key based on the number of sharps or flats in the key signature. The shape names must be from the list of pre-defined head shapes (norm, xnote, diam, blank, righttri, isostri, rect, pie, semicirc, slash), or names that you have given as the first in a pair of strings in the headshapes context.

You can get the most common shaped note system using 4 shapes using:

noteheads = "righttri norm rect righttri norm rect diam"

There are several shaped notes systems using 7 different shapes. One such system is specified by:
noteheads = "isostri semicirc diam righttri norm rect pie"

Once the noteheads parameter is set, you specify your music just like you would for standard notation, but Mup will use the appropriate noteheads based on your specifications.


score
   // Use a 7-shaped system.
   noteheads = "isostri semicirc diam righttri norm rect pie"

   // Noteheads are given in order for the major key,
   // so we'll start out with an example in major.
   key = d major

music

// Do a descending scale in D major
1: d+;c+;b;a;
bar

1: g;f;e;d;
dblbar

score
   // Now we switch to D minor, where the "tonic"
   // will start at the rect and then wrap around.
   key = d minor

music

// Do a descending scale in D minor
1: d+;c+;b;a;
bar

1: g;f;e;d;
bar

Picture of Mup output

Overriding chord noteheads

It is possible to override what note shape to use for a chord, by giving "hs" followed by a head shape name from the headshapes context, inside square brackets. Thus

	[hs "righttri"]

would use the "righttri" headshape. The specific character to use would be based on the group's duration. In other words, if the chord was a quarter note or shorter, the "fillrighttriangle" notehead would be used, but if the chord was a half or whole note, a "righttriangle" notehead would be used, and a "dwhrighttriangle" would be used for a double whole note.

The hs specification can be used along with other things that can go in the square brackets. For example,

	[hs "blank"; len 0]

would use blankheads and no stem, resulting in no chord being printed at all!

Overriding individual noteheads

If you want to override the notehead shape to be used for one specific note in a chord, you use hs followed by the head shape name as a string after the note.

1: cg e+ hs "diam"; f a hs "x" c+; 2ge+;
bar

Picture of Mup output

Putting it all together to use shaped notes

In summary, notehead shapes can be specified in five different places: per note, per chord, in voice context, in staff context, and in score context. When deciding what notehead shape to use, Mup checks for specifications in that order, using the first it finds.

Since fret numbers are used rather than noteheads on tablature staffs, the only head shape name that is allowed is "allx." which is used for "muffled" notes.

Here is a simple example of shaped notes, using the common 4-shape system.

score
	noteheads = "righttri norm rect righttri norm rect diam"
	staffs=4
	key=2#
	bracket=1-4

staff 3
	clef=treble8
staff 4
	clef=bass
music

1: 2c+;4d+;e+;
2: 2e;4a;f;
3: 2e;4f;c;
4: 2a-;4f-;a-;
bar

1: 1d+;
2: 1f;
3: 1d;
4: 1d;
endbar

Picture of Mup output

Here is an example of using the same notehead shape for all pitches, illustrating how the proper version--filled or open--of the notehead is used, based on the note's duration.

score
	time=8/4
	beamstyle=2,2,2,2

music
1: 8cf;;4;2;1;
bar

score noteheads="isostri"
music
1: 4ec+;8;;2;1;
bar

score noteheads="rect"
music
1: 1gc+;4;2;8;;
bar

score noteheads="pie"
music
1: 8cf;;4;2;1;
bar

score noteheads="x"
music
1: 4ec+;8;;2;1;
bar

score noteheads="slash"
music
1: 1gc+;4;2;8;;
bar

Picture of Mup output

And finally, here is a somewhat silly example that demonstrates how you can use the various shaped notes features to get any kind of notehead that Mup supports anywhere you want.

headshapes
	// Make some user-defined head shapes.
	// These combinations don't really make sense;
	// they are just to demonstrate what you can do.
	"reg" "4n 2n 2n 2n"
	"other" "fillrectangle diamond isostriangle dblwhole"

score
	// Set notesheads, using an arbitrary mixture of built-in
	// and user-defined head shapes.
	noteheads="norm reg other reg reg other righttri"

music

1: c;d;2e;
bar

1: 2g;f;
bar

1: {b;a;g;}3;2c+;
bar

1: 1d;
bar

// do some shape overrides, both on group and note
1: [ hs "pie" ]2ce; [hs "isostri"] c e g hs "righttri"; 
endbar

Picture of Mup output


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