glissando don't work with cross staff notation
in a piano staff create some notes in treble clef
connect 2 notes with a glissando
move the 2nd nore into to the bass clef (Ctrl-Shift-Down)
expected result: the gliss still connects the 2 notes
actual result: the gliss now semms to start somewhere below the bass note, looks as to a spot on the same line/space in the bass clef as the starting note on the treble clef.
actually it moves with that
fd82ab6679, Windows 7 (Enterprise, 64bit)
Comments
See also #22994: Cross staff grace note incorrectly positioned. Kind of a similar thing going on there, not that I expect it to literally be the same lines of code that are the problem.
BTW, I take it you probably weren't really trying to create a gliss, but were hoping for a generic line to indicate the motion of the voice? I was thinking at first this was pretty minor until I realized that would be a common use case.
Oooh, also see #3811: Glissando incorrectly presented over line break. My "cheap partial fix" for that issue involves the exact same code I'll be changing to fix this one - incorrect calculation of start point.
That was indeed my use case, as a gliss this hadn't made much sense, other than to serve as an example ;-)
So now you're up to earn the 'oldest bug fixed recently' award, I guess??
It turns out this would require a much deeper change than I suspected. The problem is not with any calculations performed within Glissando::layout() - they are actually correct (except for the cross-system issue). The problem is that gliss layout is performed before we have calculated the positions of staves within a system, so there does not appear to be any way to get info about the positions of elements on other staves relative to this staff.
So I don't think I can fix this right now, except with a hack that just sort of draws a line in the general direction of the other staff. Which could of course be combined with my partial fix for cross-system glissandi.
It's possible that if/when things are re-structured to make true cross-system glissandi possible, this will automatically fix the cross-staff glissandi as well.
I think we need to make a call on this pretty soon, though. I'll ping Miwarre, but even if he is essentially done with the code, it is possible it will be decided it is too invasive a change for 2.0.
Not sure it's worth updating the status for the partial fix I am proposing, but here is the PR:
https://github.com/musescore/MuseScore/pull/1439/
And here is what it does:
Fixed in 98235e52b2
It is of course only a partial fix, but maybe enough to downgrade this to minor as I re-open it.