Open paul-bayleaf opened 5 months ago
I think this mean that the encoded pitches should be at sounding pitch, not 1 octave higher as currently.
Yes, the encoded pitches should be at sounding pitch. I think the problem is that the first conversion (probably in CapToMusic.py
, but possibly in the MusicXML-to-MEI conversion) from the original source treated the music as in treble clef rather than vocal tenor clef (G suboctave clef). Afterwards, the treble clef was changed to the suboctave clef by hand to match the source (probably in MEI), but the notes were not transposed at the same time. This dataset was converted from MusicXML using XSLT (that @pe-ro wrote?), then Maja Hartwig and Kristina Richts added <meiHead>
, but did not view or edit the musical content of the converter (verovio was not around then, there was an MEI-MusicXML XSLT converter I think, @pe-ro, and/or an MEI-to-MUP converter, but perhaps they did not have access to either of those).
So this music:
Transcoded from Humdrum
Should be sounding like this:
Transcoded from Humdrum
In both cases the dotted quarter G note is encoded at sounding pitch:
<note xml:id="note-L8F2S1" oct="3" pname="g" accid.ges="n" />
<note xml:id="note-L8F2S1" oct="3" pname="g" accid.ges="n" />
while in the current MEI file, it is a G4 (which is then displayed as a G5 with the suboctave clef), so the music must be transposed down one octave to be correct.
To fix in the MEI score, transpose down one octave with the --transpose -P8
option in verovio:
verovio --transpose -P8 input.mei -t mei -o output.mei
Rendered output:
The original MusicXML file was generated using CapToMusic.py CapXML to MusicXML converter version 1.11.
Transcoded from a MusicXML version 1.1 file on 2011-05-12 using themusicxml2meistylesheet.
Cleaned up MEI file automatically usingppq.xsl.
Cleaned up MEI file automatically usingHeader.xsl.
Revised the header.
Converted to MEI 2013 using mei2012To2013.xsl, version 1.0 beta
Converted to version 3.0.0 using mei21To30.xsl, version 1.0 beta
Converted to MEI version 4.0.0 using mei30To40.xsl, version 1.0 beta
Converted to MEI version 5.0 using mei40To50.xsl, version 1.0
Applied lint mode.
When processing this file with verovio, the following warnings are generated:
[Warning] Unsupported value '5.0' for att.meiVersion@meiversion
[Warning] Element <title> within <pgHead> is not supported and will be ignored
[Warning] Element <persName> within <pgHead> is not supported and will be ignored
[Warning] Element <p> within <pgFoot> is not supported and will be ignored
[Warning] Tie 't4jikqp' is not encoded in the measure of its start 'd30278e1310'. This may cause improper rendering.
[Warning] Tie with @xml:id t1b1jczt has both a @startid and an @tstamp; @tstamp is ignored
Also the repeat barline(s) are not encoded in a way that verovio handles them properly at line breaks:
End of first line should be a plain barline not a repeat barline. Measure 9 has some glissandos which are encoded as text dashes. Fingerings to the left of notes are not implemented in verovio yet, I think (such as on first chord in first measure).
As a side note, if the "8" below the clef is implicit (hidden, as typical in guitar music), then using clef@oct="3"
would be used if the notes are encoded at sounding pitch:
[There is a bug in the display of the key signature in verovio when clef@oct
is used, since the key signature should not be displaced by clef@oct
]
staffDef@clef.oct
does not seem to exist (or at least implemented in verovio), so I had to adjust the staffDef:
<staffDef xml:id="sjwauos" n="1" lines="5" >
<clef oct="3" shape="G" line="2" />
</staffDef>
The original MusicXML file was generated using CapToMusic.py CapXML to MusicXML converter version 1.11.
Transcoded from a MusicXML version 1.1 file on 2011-05-12 using themusicxml2meistylesheet.
Cleaned up MEI file automatically usingppq.xsl.
Cleaned up MEI file automatically usingHeader.xsl.
Revised the header.
Converted to MEI 2013 using mei2012To2013.xsl, version 1.0 beta
Converted to version 3.0.0 using mei21To30.xsl, version 1.0 beta
Converted to MEI version 4.0.0 using mei30To40.xsl, version 1.0 beta
Converted to MEI version 5.0 using mei40To50.xsl, version 1.0
Applied lint mode.
staffDef@clef.oct
does not exist. See issue https://github.com/music-encoding/music-encoding/issues/1446 for adding it.
MEI-MusicXML XSLT
Here it is:
https://github.com/music-encoding/encoding-tools/blob/main/mei2musicxml/mei2musicxml.xsl
In the sample encodings for MEI there is a classical guitar piece, Aguado-Walzer_G-major, but when rendered with Verovio all the notes are rendered one octave too high.
Original image of the first bar:![original-1st-bar](https://github.com/music-encoding/sample-encodings/assets/76966668/81c1fdda-5fb1-4483-ae7c-9486cb5d206f)
Verovio rendering of first bar:![verovio-1st-bar](https://github.com/music-encoding/sample-encodings/assets/76966668/2671dc3b-a7d9-4486-a026-7015a3cd7f51)
To Reproduce Render https://github.com/music-encoding/sample-encodings/blob/main/MEI_5.0/Music/Complete_examples/Aguado_Walzer_G-major.mei
Compare with original: https://github.com/music-encoding/sample-encodings/blob/main/MEI_5.0/Music/Complete_examples/Aguado_Walzer_G-major.pdf
Expected behavior Notes should be rendered an octave lower.
This is not a [Verovio issue] (https://github.com/rism-digital/verovio/issues/3641). With a G clef classical guitar music is played an octave lower than notated. However, this sample uses a G suboctave clef. I think this mean that the encoded pitches should be at sounding pitch, not 1 octave higher as currently.
If the fix is simply lowering the octave of each note then I could prepare a pull request for this if required.