Style > General > Articulations: Symbol Anchor Settings Not Followed

• Jun 27, 2018 - 17:15
Reported version
2.3
Type
Functional
Severity
S4 - Minor
Status
active
Project

Symbol anchor settings for articulations as defined in styles are not followed.

Changing anchor definition does not affect score.

Screen Shot 2018-06-27 at 5.41.18 PM.png

OS: OS X 10.13
Arch.: x86_64
MuseScore version (64-bit): 2.3.0
revision: 1d80e75


Comments

Works in general on the scores I tried. Probably something specific to unpitched percussion, maybe that instrument in particular? I tried with the standard Tenor Drums instrument and it worked fine, for instance. Can you post the specific score and/or steps to reproduce from scratch?

Ah. Seems to work using the keyboard shortcuts (Shift+V for accent, etc), also when using drag & drop, but not when double-clicking palette elements. This is true for other instruments as well - it's not limited to MDL snare to unpitched percussion.

Workaround: after entering articulations using double-click, select and do Ctrl+R to reset. Now the style is honored.

In reply to by Marc Sabatella

I wonder how difficult of a fix?

Ideally, including this style for all templates containing only unpitched percussion, would cause anything created with the templates to be notated correctly by default.

This could solve one of the most common notation mistakes for marching percussion (another is stem direction).

So, it's easy to "fix", but much much harder to say if this fix actually ends up breaking something else. I do have a proposed alternate fix that is "cheating" but is safer.

First, the "real" fix would go here:

https://github.com/musescore/MuseScore/blob/2.3/mscore/palette.cpp#L290…

This is where we "clone" the palette element during double-click. It makes a literal copy of it, not really stopping to think about current score style settings. Any style settings that were "baked in" to the palette element (not set to "AUTO" where available) will be inherited. This doesn't happen on drag & drop because the code is entirely different - no clone involved, but instead a new element created from scratch, followed by a "read" of the palette element. As much by luck as anything else, this ends up picking up the style setting.

Going back and changing the double-click code to work exactly like the drag & drop code is not reasonable at this point. But if we add

ne->reset();
ne->layout();

after the clone and setScore, we do get the right results here. Not sure the layout() is necessary. Anyhow, this will also clobber any settings for custom palette items that the user had gone to the trouble of customizing. Which is why I am not crazy about it.

But, that leads to a proposed "cheating* solution for this particular use case - hardcode TOP_STAFF into the articulation palette elements for the MDL workspace.