Parts do not pick up articulation applied with keyboard shortcut

• Jun 28, 2015 - 17:31
Type
Functional
Severity
S3 - Major
Status
closed
Project

I have setup a 5 part (with 5 staffs) chamber music score and have established 5 parts (1st violin, 2nd Violin, 3rd Violin, Viola & Cello). The cello staff/ part has 2 voices. When I enter notes, text, slurs, ... they are all carried over to the "parts" and vice versa. But when I make staccato notes these Articulations are not carried between the main score and the "parts". Not a big issue but it causes double the work.

Attachment Size
6th_Concerto.mscz 37.2 KB

Comments

Title Parts do not pickup Staccato Parts do not pick up staccato applied with keyboard shortcut
Status (old) needs info active

Confirmed and reproduced in 2.0.1 and in dc261b4. It seems to not be the case if the staccato is dragged from the palette, though.

Confirmed with any score:

1) My First Score
2) generate parts
3) add a note to score
4) select note
5) press Shift+S
6) view part

Result: staccato not added

Right. As I put in the title, the bug comes up only when the staccato is applied with the keyboard shortcut (Shift+S). @Marc, are you sure this is really major? ;-)

Our comments crossed; I didn't actually intend to *change* it from normal to major. When I posted, it was already major, and I made the conscious decision *not* to downgrade it to normal even though I really wanted to :-). But actually, sure, why not, let's call it major, even though it is rather borderline for me.

I don't like that there is this potentially invisible error with using the shortcut - you might add all sorts of staccato dots to the score not realize it isn't working in parts, then end up sending out parts with missing staccato dots. And even if you do realize it eventually, you lose potentially a great deal of time having to re-enter the markings. So it's kind of a loss of work situation, sort of.

Anyhow, I believe the fix is simple: we are failing to set the track of the articulation before calling undoAddElement() here:

https://github.com/musescore/MuseScore/blob/34109869d78ff8f95559e704af6…

This caused undoAddElement() to not iterate through the linked staves. We should call a->setTrack(cr->track()) right before that line.

I'm out most of the rest of the day and can't really test this, but it does seem to work, and should be harmless. Might even turn out to fix some other glitch or other with the same root cause.

You can customize the shortcut in Edit / Preferences / Shortcut, so you should be able to test older builds if you like. But I suspect it has been there all along, and in any event, regardless of when the problem was introduced, I'm pretty sure my proposed change solves it.

Title Parts do not pick up staccato applied with keyboard shortcut Parts do not pick up articulation applied with keyboard shortcut

it is not only staccato, also tenuto, marcato, etc...
Marc's proposed fix indeed seems to work quite well, although I fail to understand why the same mechanism isn't needed a few lines up for the undoRemoveElement()