diff --git a/dev/mei-CMN.rng b/dev/mei-CMN.rng index 3eb949b..ce6b639 100644 --- a/dev/mei-CMN.rng +++ b/dev/mei-CMN.rng @@ -5,7 +5,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://www.music-encoding.org/ns/mei"> + @@ -10417,54 +10417,163 @@ or
Repertoire: String Tablature -

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

-
- 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"/> +

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.

+
+ The Staff Definition +
+ Defining 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> +
+

+
+
+ The 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> +
+

+

or, for six-course lute:

+

+

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

+

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> +
+

+

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> -
-

-

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:

+
+

+

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> +
+

+
+
+
+ Encoding 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.

- <staffDef lines="6" n="1" tab.strings="ef5 bf4 gf4 df4 af3 ef3"/> - + <note tab.course="6" tab.fret="5"/>
-

-

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.

+

+

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.

- <staffDef lines="6" n="1" tab.strings="e4 e3 a4 a3 d4 d3 g5 g4 b4 b4 e5 e5"/> - + <tabGrp dur="4"> + <tabDurSym/> + <note tab.course="4" tab.fret="2"/> + <note tab.course="6" tab.fret="0"/> +</tabGrp>

-

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.

+

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.

- <note dur="4" oct="3" pname="a" tab.string="3"/> + <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>

-

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).

+

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> +
+

+

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.

- <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> - + <tabGrp dur="4"> + <tabDurSym/> + <rest/> +</tabGrp>

@@ -17715,6 +17824,18 @@ or Tablature notation. + + Tablature notation for guitars (includes "spanish" lute tablature). Frets are indicated using numbers. Courses closest to the player's feet are at the top of the staff. + + + "French" tablature notation for lutes. Frets are indicated using letters. Courses closest to the player's feet are at the top of the staff. + + + "Italian" tablature notation for lutes. Frets are indicated using numbers. Courses closest to the player's feet are at the bottom of the staff. + + + "German" tablature notation for lutes. Fret and course information is conveyed solely by choice of symbol (vertical position is not used for this). + @@ -18258,7 +18379,7 @@ or - In string tablature, the number of the string to be played, i.e., [1-9]+. + This attribute is deprecated in favour of data.COURSENUMBER and will be removed in a future version. In string tablature, the number of the string to be played, i.e., [1-9]+. @@ -18627,6 +18748,9 @@ or Analytical domain attributes. + + Analytical domain attributes. + Analytical domain attributes. @@ -19067,6 +19191,15 @@ or Analytical domain attributes. + + Analytical domain attributes. + + + Analytical domain attributes. + + + + Analytical domain attributes. @@ -19076,6 +19209,9 @@ or Analytical domain attributes. + + Analytical domain attributes. + Analytical domain attributes. @@ -24560,6 +24696,9 @@ or Gestural domain attributes. + + Gestural domain attributes. + Gestural domain attributes. @@ -25137,6 +25276,16 @@ or Gestural domain attributes. + + Gestural domain attributes. + + + Gestural domain attributes. + + + + + Gestural domain attributes. @@ -25193,6 +25342,9 @@ or + + Gestural domain attributes. + Gestural domain attributes. @@ -33932,7 +34084,7 @@ or - Level of duration at which the proportion given by the @num and @numbase ratio applies. + Level of duration at which the proportion given by the @num and @numbase ratio applies. @@ -35545,6 +35697,17 @@ or C to C♯ and one from C to D♭.

+ + Logical domain attributes for tuning. + + + Describes the tuning standard used. + + + + + + Attributes that describe tuning. @@ -36271,6 +36434,9 @@ or Groups elements that may appear as part of a title page transcription. + + Groups elements that may appear inside the tuning element. + accidental Records a temporary alteration to the pitch of a note. @@ -39524,9 +39690,9 @@ or - + - + @@ -40409,6 +40575,25 @@ or

The model of this element is based on the titlePart element of the Text Encoding Initiative (TEI).

+ + Describes the tuning of an instrument. + + + + + + + + + + + + + + +

At this point, the tuning element has been worked out for string instruments only. However, as it seems applicable for other instruments, it's been made available in the MEI.shared module.

+
+
Description of the horizontal size of an object. @@ -40429,34 +40614,82 @@ or Tablature component declarations. + + In string tablature, the number of the course to be played, i.e., [1-9]+. + + + + + + Standard course tunings. + + + + Standard tuning for current guitars. The courses are tuned to E2 A2 D3 G3 B3 E4. + + + Drop D tuning for guitars. The lowest course is tuned down to D, while all other courses are kept to their regular pitches. D2 A2 D3 G3 B3 E4. + + + Open D tuning for guitars. D2 A2 D3 F3s A3 D4. + + + Open G tuning for guitars. D2 G2 D2 G2 B3 D4. + + + Open A tuning for guitars. E2 A2 E3 A3 C4s E4. + + + Renaissance tuning for lutes with 6 courses. G2 C3 + F3 A3 D4 G4. + + + Baroque tuning for lutes with 6 stable courses, and additional bass courses tuned to the key of D minor. A2 D3 F3 A3 D4 F4 for the main six courses, and bass courses descending in pitch from G2, F2, etc., depending on the size of the instrument. + + + + + + Logical domain attributes. + + + + + + Visual domain attributes for scoreDef in the tablature repertoire. + String tablature string and fret information. + + Attribute that describes the vertical alignment of tablature symbols. Only applicable in cases where the symbols' vertical position does not communicate other information, such as courses (i.e., only in German lute tablature). Typical values are top and bottom. + + + + + - Indicates which finger, if any, should be used to play an individual string. The - index, middle, ring, and little fingers are represented by the values 1-4, while t is - for the thumb. The values x and o indicate muffled and open strings, - respectively. + This attribute is deprecated and will be removed in a future version. Indicates which finger, if any, should be used to play an individual string. The index, middle, ring, and little fingers are represented by the values 1-4, while t is for the thumb. The values x and o indicate muffled and open strings, respectively. @@ -40467,12 +40700,24 @@ or + + Used in German lute tablature in cases where vertical positioning deviates from the norm which can be specified by tab.align. Indicates the position of the note on one of the horizontal strands corresponding to the lines attribute on staffDef. (Note that in this case, the lines are conceptual rather than visible). + + + + - Records which string is to be played. + This attribute is deprecated in favour of tab.course and will be removed in a future version. Records which string is to be played. + + Records which course is to be played. + + + + @@ -40487,16 +40732,30 @@ or
- String tablature tuning information. + This collection of attributes is deprecated in favour of the new tuning element and will be removed in a future version. String tablature tuning information. - Provides a *written* pitch and octave for each open string or course of + This attribute is deprecated in favour of the new tuning element and will be removed in a future version. Provides a *written* pitch and octave for each open string or course of strings. - [a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)* + + [a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)* + + + + + + + This attribute is deprecated in favour of the new tuning element and will be removed in a future version. Provides a *written* pitch and octave for each open string or course of strings. + + + + + + [a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)* @@ -40504,6 +40763,22 @@ or + + Logical domain attributes. + + + + + + + Logical domain attributes. + + + + + + + A barre in a chord tablature grid. @@ -40515,9 +40790,7 @@ or - Records the location at which the strings should be stopped against a fret in a - fretboard diagram. This may or may not be the same as the actual location on the fretboard - of the instrument in performance. + This attribute is deprecated in favour of tab.fret, and will be removed in a future version. Records the location at which the strings should be stopped against a fret in a fretboard diagram. This may or may not be the same as the actual location on the fretboard of the instrument in performance. 1 @@ -40527,11 +40800,90 @@ or -

The startid and endid attributes are used to indicate the chordMember elements on which the barre starts and finishes respectively. - The fret at which the barre should be created is recorded by the fret +

The startid and endid attributes are used to indicate the chordMember elements on which the barre starts and finishes + respectively. The fret at which the barre should be created is recorded by the fret attribute.

+ + individual course tuning information + Describes the tuning of a course on a stringed instrument (e.g., guitar, lute). + + + + + + + + + + + + + + + + individual string tuning information + Used to modify tuning information given by the course element. Describes the tuning of an individual string within a course on a stringed instrument (e.g., guitar, lute). + + + + + + + + + + + + + + + A visual indication of the duration of a tabGrp. + + + + + + + + + + + + + + +

The presence of a tabDurSym indicates that there is a symbol rendered for the parent tabGrp. If no additional attributes like altsymare given, a default symbol conforming to the current notation style or font is to be used. The absence of this elements indicates that the last provided duration symbol equally applies to the current tab group.

+
+
+ + A group of simultaneous tab notes, comparable to a chord in CMN. Rarely, may also contain rests, as in some "German" lute tablatures. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Visual domain attributes. @@ -43321,6 +43701,9 @@ or + + Visual domain attributes. + Visual domain attributes.