Open cecilios opened 2 years ago
@cecilios Yes, the main fingering would precede either the substitution or the alternate fingering. I agree this could be better documented both in the specification text and examples. I will try to provide an example later. Feel free to post a notation image or two that you would like to see the MusicXML for.
Thank you Michael.
Thank you for the help. Please feel free to close the other two issues related to this one. I'm going to deal here with all of them as they all refer to the same issue: lack of documentation in <fingering>
element.
In the absence of information I have made an exercise to imaging how an exporter would create the fingering elements and how an importer should do with them. I do not have access to Finale, Dorico or other commercial software, thus I cannot test this. The result of my exercise is illustrated in the attached score 02-fingering.xml.txt that is imported and rendered by my library as follows:
These are my assumptions:
the main fingering would precede either the substitution or the alternate fingering (e.g. 3rd & 4th notes, upper staff)
A note can have many fingerings (neither substitution nor alternate). In these cases, two scenarios:
Another option for chords could be to put the fingering on each chord note (e.g. 2nd chord, upper staff, second measure). In these cases the fingerings are engraved vertically stacked, in the same order than notes in the chord.
Please, note that positioning information is not needed. Fingering have well defined positions, as articulations have, and thus positioning information is not needed. Could be useful in some cases but I prefer that my software do not depend on the existence of this information.
I don't know if my assumptions are correct, but in any case the behavior should be documented so that all exporters and importers share the same rules.
There are some additional issues that I cannot solve (illustrated in next image, from E.Gould, p.309):
Finger substitution using a long line instead of a small arc. I don't know to to encode this and how to specify the length of the line (the fingering for the chord, at top)
Also, it is not clear what fingering values are valid values. I'm used to piano scores, but I don't know about other instruments and about what not expect / export in the <fingering>
element (e.g. values already in <hole>
or in <pluck>
elements. Any other?)
@cecilios, thanks a lot for your sample! I agree with all your conclusions except one: In measure two, first beat, right hand, you are putting three <fingering>
elements on a single note in a chord: for the sake of conformity, and to avoid another exception, I pledge that this should be still handled as a single note with three fingerings. In other words, the result should look like the following:
Finally, the default rendering of LilyPond for the last chord in the bass line (<c-5 a,-3 f-1>4
) is as follows, making clear that the fingering in your example is, well, peculiar :slightly_smiling_face:
@lemzwerg Thanks for your comments.
I did put the fingering of the first chord you indicate on purpose to check that my library could handle both options perfectly. I don't advocate this option of putting all the fingering of a chord on the first note, but since there is no documentation or examples, I didn't know what I could find in the wild and I preferred my library to be able to handle both options. Also, in the case of chords it is common for many indications to be present only on the first note, so it was not unreasonable to assume that I could find XML files in the wild generated in this way. That's what happens when there is no documentation! But three years later, still nothing clarified! Clearly, it's probably not a topic of interest to anyone.
As to the Lilypond rendition of last chord, I must say that the fingering instructions in my example are not intended for a pianist to play, but rather to check the behavior when importing the file and rendering it. The fingering of the last chord (encoded as note C3 finger 5, note A2 finger 3 and note F3 finger 1) is inverted on purpose, as if it were to be played with the right hand (for the left hand it should be note C3 finger 1, note A2 finger 3 and note F3 finger 5), to check the behaviour of importers. Nevertheless, the rendition provided by my library is IMO the right rendition: fingering in source file is respected and fingering numbers are properly ordered and are placer UNDER the chord. To me, what is really peculiar is Lilypond rendition: some digits above and some under, and more peculiar, how might a pianist cross fingers 5 and 3 as the Lilypond image suggests? But, apart from the implausible position suggested by Lilypond, it has made the mistake of changing the fingering indicated in the source file, associating finger 5 with note A2 and finger 3 to note C3 which is not what is indicated in the XML file.
Nevertheless, the rendition provided by my library is IMO the right rendition: fingering in source file is respected and fingering numbers are properly ordered and are placer UNDER the chord. To me, what is really peculiar is Lilypond rendition: some digits above and some under, and more peculiar, how might a pianist cross fingers 5 and 3 as the Lilypond image suggests? But, apart from the implausible position suggested by Lilypond, it has made the mistake of changing the fingering indicated in the source file, associating finger 5 with note A2 and finger 3 to note C3 which is not what is indicated in the XML file.
That LilyPond automatically distributes fingering instructions above and below a chord can be controlled; the default (as displayed above) is used, for example, by the UE Schenker edition of Beethoven's piano sonatas:
BTW, there is no rule for piano music to put fingerings below the bass staff. Again, the Schenker UE edition shows that the positions are completely arbitrary:
About the crossing fingers: This is exactly what is given in your MusicXML file: C3 has finger 5 and note A2 has finger 3. It seems that you are not a pianist: LilyPond's rendering of the fingerings can only interpreted in one way.
Anyway, this is not the place to discuss LilyPond renderings :-)
@lemzwerg Ops! You are right! My rendition of last chord is not correct! I was obfuscated, looking only at the order in which the fingering had been defined and not at the notes to which each digit was associated.
And thanks for the information and the images. I know that there is no strict rule for piano music to put fingerings below the bass staff or above for the upper staff, but that is the default positioning my library assumes, unless positioning information is present.
Thanks againg for pointing out the error in my rendition.
According to documentation attribute
substitution
"Indicates that this fingering is a substitution in the middle of a note", and attributealternate
"Indicates that this is an alternate fingering".But, how is it specified the main fingering to be substituted or that has an alternative? Is it the previous defined
<fingering>
?Could you please share a short MusicXML sample with different
<fingering>
combinations for better understanding and testing? Thank you.