Open bel28kent opened 11 months ago
For three staves it is possible by labeling only the middle staff:
When there are three staves, *part#
should also be given to indicate that all three staves are for a single part. *part1
for all spines in the above case. Technically for two staves this should also be done, but I instead detect that there are two identical names in adjacent spines, and when that happens, the text is placed between the two staves.
I could implement:
**kern **kern **kern
*part1 *part1 *part1
*staff3 *staff2 *staff1
*I"piano *I"piano *I"piano
*clefF4 *clefF4 *clefG2
1CC 1C 1cc
= = =
*- *- *-
!!!system-decoration: {(*)}
Where three adjacent staves have the same name and are merged into a single name on the middle staff. But this is not very necessary since the middle staff can be labeled, and the other two can be unlabeled, or have an empty name *I"
.
A related issue for kern encoding of piano music broadly is whether the third or fourth staff should really be encoded as a third or fourth spine. In the case of piano music, the third or fourth staff is really a type of subspine, and not a spine in the same way that it would be in trio or quartet music. It might be more appropriate to create a new spine locally ad hoc in the kern file, rather than having a global spine that is mostly unused except for whole rests.
There is a way of doing this in Humdrum:
**kern **kern
*clefF4 *clefG2
= =
1C 1c
= =
* *+
* * **kern
1C 1c 1cc
= = =
* * *-
1C 1c
= =
*- *-
But MEI and MusicXML cannot represent such things, so it is difficult to determine how to implement in a converter (other than adding lots of invisible rests for when the part is not present). Don't try in VHV as it will crash the webpage :-)
For four staves, how should the staves be labeled?
Or:
Is it not useful to have each **kern spine labelled with an instrument code for viewing the file in vim or standard output? I can imagine someone who is not familiar with the music looking at a file in the terminal and examining the file to see if it is piano solo music or some type of chamber music. This may not be an issue if the corpus only contains piano music; but my corpus will eventually be a mixed corpus with piano solo music and orchestral music. (And Scriabin's orchestral music has piano parts.)
Yes, it is best to include an instrument code in every spine. In this case *Ipiano
(which is different from the staff label such as *I"piano
which is for visual purposes rather than analytical). Here is an example of including the instrument codes for a four-staff piano part:
Also useful is to inlcude an !!!AIN:
reference record which lists the instrumentation in the score by instrument code (arranged alphabetically:
!!!AIN: 1 alto 1 bass 1 soprn 1 tenor
The instrument codes are given in alphabetic order and an optional number of parts is given before each instrument code.
For a four-staff piano part:
!!!AIN: piano
or
!!!AIN: 1 piano
When the grand staff has the normal two staves, VHV appropriately only displays one "Piano:"
However, when the grand staff has three or four staves, the instrument code for each staff is printed:
(A related issue for kern encoding of piano music broadly is whether the third or fourth staff should really be encoded as a third or fourth spine. In the case of piano music, the third or fourth staff is really a type of subspine, and not a spine in the same way that it would be in trio or quartet music. It might be more appropriate to create a new spine locally ad hoc in the kern file, rather than having a global spine that is mostly unused except for whole rests.)