20 Tablature Notation

This chapter describes the attribute classes that are part of the MEI.tablature module.

20.1 Overview of the Tablature Module

The tablature module is used to record basic tablature notation. It is designed primarily for guitar and similar plucked-string instruments.

The lines attribute on the staffDef element is used to define the number of lines, courses, or strings, present in the tablature. The tab.strings attribute is then used to enumerate the pitches of the open strings. It is important to note that this is given using the written pitch, not the sounding pitch. For example, the Western 6-string guitar, in standard tuning, sounds an octave below written pitch.

The tab.strings attribute gives the string tuning, ordered from highest to lowest pitch.

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

<staffDef lines= "6" n= "1" tab.strings= "e5 b4 g4 d4 a3 e3"/>

Chromatic alteration of the open string's pitch may be indicated with the '-' or 'f' (flat), or the '#' or 's' (sharp). Multiple sharps and flats are not permitted.

A guitar in E-flat tuning might look like this:

<staffDef lines= "6" n= "1" tab.strings= "ef5 bf4 gf4 df4 af3 ef3"/>

Some instruments, like the 12-string guitar, have the four lowest strings tuned an octave above but are still written on a 6-line tablature staff. In this case, you may enumerate the open string pitches while maintaining 6 lines.

<staffDef lines= "6" n= "1" tab.strings= "e4 e3 a4 a3 d4 d3 g5 g4 b4 b4 e5 e5"/>

The note element is used to capture the specific events in the tablature. The tab.string attribute is used to capture which string the note is to be played on. String order is the same as that given in the tab.strings attribute. This attribute takes a positive integer in the range of 1-9.

<note dur= "4" oct= "3" pname= "a" tab.string= "3"/>

In the case of fretted instruments, the fret number may be captured using the tab.fret attribute. An open string may be indicated using the value "0" (zero).

<layer>
<note dur= "4" oct= "2" pname= "a" tab.fret= "5" tab.string= "6"/>
<note dur= "4" oct= "2" pname= "a" tab.fret= "0" tab.string= "5"/>
</layer>