w3c / musicxml

MusicXML specification
508 stars 57 forks source link

Lute tablature: <staff-tuning> cannot encode the tuning of lutes with more than 6 courses when using French tablature. #468

Open paul-bayleaf opened 2 years ago

paul-bayleaf commented 2 years ago

Element <staff-tuning> specifies the tuning of the staff, not of the instrument. Lutes may have many more courses (strings) than tablature lines. E.g. an 8 course lute using a 6 line staff. There is currently no way to specify the tuning of the 7th, 8th etc course for French lute tablature as that would require @line to take values 0, -1, ..., which is not allowed by the schema (positiveInteger).

Proposal: in allow @line to take integer (positive, zero, negative) values. Line 1 is still the bottom staff line. This proposal is backwards compatible and does not require the introduction of any new elements or attributes.

Example, an 8 course lute, 6 line staff using French tablature:

            <staff-details show-frets="letters">
                <staff-lines>6</staff-lines>
                <staff-tuning line="6">
                    <tuning-step>G</tuning-step>
                    <tuning-octave>4</tuning-octave>
                </staff-tuning>
                <staff-tuning line="5">
                    <tuning-step>D</tuning-step>
                    <tuning-octave>4</tuning-octave>
                </staff-tuning>
                <staff-tuning line="4">
                    <tuning-step>A</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="3">
                    <tuning-step>F</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="2">
                    <tuning-step>C</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="1">
                    <tuning-step>G</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
                <staff-tuning line="0">
                    <tuning-step>F</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
                <staff-tuning line="-1">
                    <tuning-step>D</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
            </staff-details>

For Italian (upside down) tablature for 7th, 8th ... courses @line would use values greater that the value of <staff-lines>, this is already allowed by the schema.

Example, an 8 course lute, 6 line staff using Italian tablature:

            <staff-details>
                <staff-lines>6</staff-lines>
                <staff-tuning line="1">
                    <tuning-step>G</tuning-step>
                    <tuning-octave>4</tuning-octave>
                </staff-tuning>
                <staff-tuning line="2">
                    <tuning-step>D</tuning-step>
                    <tuning-octave>4</tuning-octave>
                </staff-tuning>
                <staff-tuning line="3">
                    <tuning-step>A</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="4">
                    <tuning-step>F</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="5">
                    <tuning-step>C</tuning-step>
                    <tuning-octave>3</tuning-octave>
                </staff-tuning>
                <staff-tuning line="6">
                    <tuning-step>G</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
                <staff-tuning line="7">
                    <tuning-step>F</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
                <staff-tuning line="8">
                    <tuning-step>D</tuning-step>
                    <tuning-octave>2</tuning-octave>
                </staff-tuning>
            </staff-details>
mdgood commented 2 years ago

@paul-bayleaf Thank you for the suggestion. For those of us who have not looked at lute tablature in a while, could you please provide or link to some notation examples, and how this information would be reflected in the lute notation?

paul-bayleaf commented 2 years ago

Thank you for your interest. For French lute tablature the 1st course is on the 6th staff line and the 6th course is on the 1st staff line (just as modern guitar tablature). The 7th and further courses are notated just below the 1st staff line. The 7th to 10th courses are usually notated a, b, ..; /a, /b, ...; //a, //b, ...; ///a, ///b, ... etc. 11th and further courses are numbered 4, 5, etc. Although there is some variation between sources. Some examples:

For 9 course lute, French tablature https://www.lutemusic.org/facsimiles/ValletN/Le_Secret_des_Muses/v.1_1615/003.png

For 11 course lute, French tablature https://www.lutemusic.org/facsimiles/F-B_Besancon_Municipal_Library/saizenay_ms_1699/279.153/011.png

For Italian tablature the 1st course is on the 1st staff line and the 6th course on the 6th staff line, so it is "upside down". The 7th and 8th courses appear above the 6th staff line on ledger lines. Higher courses are usually numbered 9, 10 (or x) etc. Although there some some variations between sources, e.g. using 7 and 8 for the 7th and 8th courses. Some examples.

For 10 course lute, Italian tablature https://www.lutemusic.org/facsimiles/KapsbergerG/Intavolatura_di_Liuto/v.1_1611/03.png

For 10 course lute, Italian tablature https://www.lutemusic.org/facsimiles/PiccininiA/Intavolatura_di_Liuto/v.2_1639/04.png

Currently only courses that correspond to staff lines can have their tuning specified. My suggestion would allow the tuning of the 7th, 8th, 9th etc courses to also be specified. For French tablature using staff lines 0, -1, -2 etc; and for Italian tablature using staff lines 7, 8, 9 etc. Regardless of the number of courses only staff lines 1 to <staff-lines> would be rendered.

The tuning information is required to associate a pitch with a course/fret combination, for example to generate the following note we need to know how the 7th course is tuned.

        <note>
            <pitch>
                <step>F</step>
                <octave>2</octave>
            </pitch>
            <duration>48</duration>
            <type>16th</type>
            <notations>
                <technical>
                    <string>7</string>
                    <fret>0</fret>
                </technical>
            </notations>
        </note>
mdgood commented 2 years ago

Thank you for this very helpful explanation. Would you please consider joining the Music Notation Community Group so we can properly consider this issue for a future MusicXML release? Click on the "Join Or Leave This Group" button on the home page to start the membership process.