Closed craigsapp closed 2 years ago
One solution is implemented with commit https://github.com/rism-digital/verovio/commit/d74f3aac04071f0b539f4ae3e40109fd44b0acc0
Adding a *tacet
interpretation before the first data line in the file will cause that staff to not be printed (regardless of whether or not there are notes in the spine). This is an easy way to fix the MIDI playback since the staff with the unknown time signatures are no longer converted to MEI, so no mRests with an unknown time signature are present.
If you want to see the tacet staves in the full score, then apply the filter:
shed -e s/^tacet$/Xtacet/I
To make <meterSig>
invisible, use @form="invis"
.
If all staves in score contain *tacet
, then do not suppress them (otherwise there is nothing to print). This is fixed with commit https://github.com/rism-digital/verovio/commit/13297e4d3edd486167bf6a2fac866938be14087a
If you need to see individual empty measures in the extracted tacet part, then use kernview -v 10
:
There is also a complication if you use extract -k 11
since this system does not ignore the tacet staves below the extracted staff.
Commit https://github.com/rism-digital/verovio/commit/c94157811cd5b6a8a17f0412950da0e458f02790 should fix the problem: The time signature will be monitored when adding an mRest in the MEI conversion. When the mRest does not have the same duration as the time signature, then it will be converted to a regular rest. For this particular test case there is no time signature, therefore 4/4 is presumed (matching the assumption of verovio for mRests). Since the real time signature is 2/4, the 2ryy
does match the (incorrect) assumed duration of 1ryy
, so the rest is prevented from becoming an mRest.
This solution avoids the need to encode time signatures in a tacet part. A current limitation is that the full-measure rest has to be printable as a single rest (so cannot handle 5/8, 7/8 and similar time signatures for now).
After the fix, the MIDI playback does not pause at the end of each measure due to mRests trying to overfill the 2/4 measures. Also there is no extra space added to the ends of the music due to the same problem.
Transcoded from Humdrum
Encoded by: Andrzej Borzym
In the score: https://verovio.humdrum.org/?file=https%3A%2F%2Fdata.nifc.humdrum.org%2F18xx%3A997.krn
There are tacet parts with no time signature encoded but full-measure rests are. These are converted into
<mRest>
in MEI. Verovio has problems with the no-time-signature mrests and assumes that they are 4 quarter notes long (which is a problem for MIDI playback and some spacing problems at the ends of measure in 2/4 for example).Several solutions could be done, such as automatically add a time signature for these tacet parts.
Also, it would be useful to add a
*tacet
interpretation which would allow the tacet parts to not be shown by default in the score.Test example:
https://verovio.humdrum.org/?file=https%3A%2F%2Fdata.nifc.humdrum.org%2F18xx%3A997.krn