7Repertoire: String Tablature

This chapter describes the MEI.stringtab module (which will be renamed to MEI.tablature in a future version). The MEI.stringtab module is used to record basic tablature notation. It is designed primarily for plucked-string instruments, such as guitar and lute.

7.1The Staff Definition

7.1.1Defining the Notation

Tablatures come in a variety of types or notations, varying according to instrument but also according to historical context. The notation used is defined on the staffDef element using the notationtype attribute. Possible values are: tab.guitar, tab.lute.italian, tab.lute.french and tab.lute.german.

The lines attribute on the staffDef element is used to define the number of horizontal lines used in a staff.

<staffDef lines="6" n="1" notationtype="tab.guitar"> ... </staffDef>
Listing 283.

7.1.2The Instrument Setup and Tuning

Because string tablatures specify which frets and strings to play on the instrument, rather than abstract pitches, it is necessary to know the tuning and setup of the instrument.

Guitar-like instruments can be described in terms of the number of strings they have, but often the strings are grouped and notated as if those groups were a single string. Examples include mandolins and 12-string guitars. To make this distinction explicit, we use "string" exclusively to refer to physical strings. To refer to the notated version, which may consist of one or more physical strings, we use the historical term, "course". Thus, both a 6-string and a 12-string guitar are 6-course instruments.

The course tuning for 6- and 12-string guitars are the same – so they can both play from the same tablatures. Our tuning specification supports indicating course tunings on their own, or string tunings as well.

The tuning element is used inside staffDef to describe the pitches of the open strings of the instrument. In the simplest cases, the tuning can be named from a standard list. For example, to specify the most common tuning of the guitar:

<staffDef lines="6" n="1" notationtype="tab.guitar">
<tuning tuning.standard="guitar.standard"/>
</staffDef>
Listing 284.

or, for six-course lute:

<staffDef lines="6" n="1" notationtype="tab.lute.french">
<tuning tuning.standard="lute.renaissance.6"/>
</staffDef>
Listing 285.

Custom tuning may be needed when no existing tuning.standard value applies. The course element gives the tuning of each course. n captures the course number (counting from the course closest to the player's feet when the instrument is played), pname the pitch information and oct the octave information.

For standard classical guitar tuning, the tuning element might look like this:

<tuning>
<course n="1" pname="e" oct="4"/>
<course n="2" pname="b" oct="3"/>
<course n="3" pname="g" oct="3"/>
<course n="4" pname="d" oct="3"/>
<course n="5" pname="a" oct="2"/>
<course n="6" pname="e" oct="2"/>
</tuning>
Listing 286.

Chromatic alteration of the open string’s pitch may be indicated by adding the accid. For example, a guitar in E-flat tuning might look like this:

<staffDef lines="6" n="1" notationtype="tab.guitar">
<tuning>
<course n="1" oct="5" pname="e" accid="f"/>
<course n="2" oct="4" pname="b" accid="f"/>
<course n="3" oct="4" pname="g" accid="f"/>
<course n="4" oct="4" pname="d" accid="f"/>
<course n="5" oct="3" pname="a" accid="f"/>
<course n="5" oct="3" pname="e" accid="f"/>
</tuning>
</staffDef>
Listing 287.

Where the specific instrumental setup is important, the stringing of the instrument can also be specified. The example below is a common way to string and tune a 6-course renaissance lute. The pitch on course indicates how the resulting note would normally be transcribed in score, and would often be derived from the lowest sounding pitch.

<tuning>
<course n="1" pname="g" oct="4">
<string pname="g" oct="4"/>
</course>
<course n="2" pname="d" oct="4">
<string pname="d" oct="4"/>
</course>
<course n="3" pname="a" oct="3">
<string pname="a" oct="3"/>
<string pname="a" oct="3"/>
</course>
<course n="4" pname="f" oct="3">
<string pname="f" oct="4"/>
<string pname="f" oct="3"/>
</course>
<course n="5" pname="c" oct="3">
<string pname="c" oct="4"/>
<string pname="c" oct="3"/>
</course>
<course n="6" pname="g" oct="2">
<string pname="g" oct="3"/>
<string pname="g" oct="2"/>
</course>
</tuning>
Listing 288.

7.2Encoding Tablatures

Unlike CMN, note elements in tablature do not have an explicit pitch, but indicate playing instructions (i.e., where to place fingers on the fingerboard and when to play the strings). The tab.course attribute is used to capture which course is to be struck, and tab.fret specifies on which fret of the fretboard the player should stop the course. A value of 0 for tab.fret refers to an unstopped, open course; a value of 1 refers to the first fret; and so on. Course order is the same as that given in the course elements.

<note tab.course="6" tab.fret="5"/>
Listing 289.

A set of vertically-aligned symbols is indicated by tabGrp, i.e., a chord whose notes are played at the same time, and have the same (minimum) notated duration. The duration of a tabGrp may be indicated visually with a rhythm symbol, whose presence is encoded using the tabDurSym element. In many cases, the rhythm sign is omitted where it would repeat the previous value. For this reason tabDurSym is optional, and the durational value of the tabGrp is encoded as dur.

<tabGrp dur="4">
<tabDurSym/>
<note tab.course="4" tab.fret="2"/>
<note tab.course="6" tab.fret="0"/>
</tabGrp>
Listing 290.

As with CMN, rhythm flags joined together can be indicated using beam. Since every note in a beam group always has a rhythm sign, tabDurSym should be used for beamed notes.

<beam>
<tabGrp dur="8">
<tabDurSym/>
<note tab.course="1" tab.fret="0"/>
</tabGrp>
<tabGrp dur="8">
<tabDurSym/>
<note tab.course="1" tab.fret="2"/>
</tabGrp>
</beam>
Listing 291.

Tablatures usually indicate a rest by a rhythm sign that has no symbols for notes underneath. We can encode this with a tabDurSym that is the only element of a tabGrp.

<tabGrp dur="4">
<tabDurSym/>
</tabGrp>
Listing 292.

In some rare cases, special rest symbols may also appear below the rhythm sign. This can be encoded by adding a rest to the tabGrp.

<tabGrp dur="4">
<tabDurSym/>
<rest/>
</tabGrp>
Listing 293.