Closed jacekiwaszko1 closed 6 years ago
A temporary solution is to move the *Xtuplet
interpretation earlier in the music. This is a style setting that can be set any time before it is needed to force the tuplet numbers to be hidden:
**kern **kern **dynam
*part1 *part1 *part1
*staff2 *staff1 *
*clefF4 *clefG2 *
*k[b-e-] *k[b-e-] *
*M4/4 *M4/4 *
*met(c) *met(c) *
=5 =5 =5
* *^ *
* *Xtuplet * *
*ped * * *
4BB- 4BBB- 4dd 2ryy .
. (<8qd . .
. 8qdL . .
. 8qf . .
. 8qb-J . .
4F 12ddL> . .
*Xped * * *
. 12cc . .
. 12b-J) . .
. . [<8qcL .
. . [<8qd .
. . [8qf#XJ .
4DD 8b-L 4f#] 4d] 4c] .
. 8aJ . .
[4D 4r 4r .
* *v *v *
== == ==
*- *- *-
!!!RDF**kern: > = above
!!!RDF**kern: < = below
But I will look into more detail about what is happening to cause the problems with the layers.
The cause of the problem is related to an extra <space>
element being added to the MEI conversion:
<space xml:id="space-0000001040982965" />
This space has no duration, and probably what verovio is doing is assigning the duration of a breve to the space, thus forcing the second layer to be displayed out of alignment with the first layer. Ideally verovio should not do that, but also the converter should not add an empty space, so I will fix the converter so that it does not add the extra <space>
element.
Extra space in conversion highlighted in text editor:
Fixed with commit: https://github.com/rism-ch/verovio/commit/ada10a24af0a0191bc0fff1dc18be0d382650733
Distilled example:
**kern
*clefG2
*M4/4
=
*^
* *
4dd 2r
*Xtuplet *
12ddL> .
* *
12cc .
12bJ) .
8bL 4c
8aJ .
4r 4r
*v *v
=
*-
Original example now displays properly:
The fix is not fully generalized, so there may be other similar situations that will be related.
Spacing problem with the converter in this example:
**kern **kern **dynam
*clefF4 *clefG2 *
*k[f#c#g#d#] *k[f#c#g#d#] *
*M4/4 *M4/4 *
*met(c) *met(c) *
=89 =89 =89
* *^ *
*ped * * *
12GG#L (4cc# 4rc .
12Eny . . .
12c# . . .
12E 2gg#^ 8rc .
12GG# . . .
. . 16r .
*Xped * * *
12CC#J . . .
. . 16any .
*ped * * *
12BBBnyL . (>20a'>LL .
. . 20b'> .
12BBny . . .
. . 20a'> .
. . 20g#'> .
12d#y . . .
. . 20a'>JJ) .
12Any 4ff#) 8.bL .
12BB . . .
*Xped * * *
12BBBJ . . .
. . 16f#Jk .
=90 =90 =90 =90
*ped * * *
12EEnyL (2eeny 1g# .
12BBny . . .
12eny . . .
12G# . . .
12BB . . .
*Xped * * *
12DD#yJ . . .
*ped * * *
12CC#L 4ee'< . .
12GG# . . .
12G# . . .
12C# 4ee'< . .
12GG# . . .
*Xped * * *
12CC#J . . .
=91 =91 =91 =91
!!linebreak:original
*ped * * *
12CC#L 2ee 4bny .
! ! ! !LO:HP:a
12GG# . . <
12c# . . .
12E#X . 8.cc#L .
12GG# . . .
*Xped * * *
12CC#J . . .
. . 16bJk [
*ped * * *
12CC#L [2ff#) 4b .
12AAny . . .
12c# . . .
12F# . 8.anyL .
12AA . . .
*Xped * * *
12CC#J . . .
. . 16g#Jk .
= = = =
*- *- *- *-
Minimal example that still has the problem:
**kern **kern
*clefF4 *clefG2
*M4/4 *M4/4
= =
*ped *
4F 1g
12GL .
12E .
*Xped *
12DJ .
*ped *
4C .
12CL .
12D .
*Xped *
12CJ .
= =
*- *-
The problem is that the whole note is split twice with a pedal mark inside of a tuplet. The previous fix only compensated for one such occurrence.
Should be fixed with commit https://github.com/rism-ch/verovio/commit/0337215eca0eb730a12cb2b0d1acf5685527b2ef
Example:
In the following example taken from Nocturne op. 37 no 1 rendering is incorrect when there are both
*Xtuplet
and*Xped
interpretations:Source image:
KERN:
MEI:
Rendering:
Removing one of the
*
lines fixes rendering:KERN:
or
give proper result: