Switching concert pitch when using transposing instruments augments the keysignature on each line.

• Dec 12, 2014 - 11:11
Type
Functional
Severity
S2 - Critical
Status
closed
Project

When you have a score with a Bflat trumpet and key signature 2 b's (that'll be no signature on creation) and you switch on concert pitch, each following line has an added #. I guess the way signatures in staves are handled has been changed breaking the code in transpose.cpp.


Comments

Confirmed.

To reproduce:

1. Open this file: Trumpet score.mscz
2. Drag and drop a new Key Sig (2 flats) for changing the actual Key Sig (2 sharps)
3. Press "Concert Pitch"

Result: this:
result.jpg

This issue occured there is four days, on December 8.

It's a side effect of this commit: https://github.com/musescore/MuseScore/commit/8ff4a8f95eb5df55fc68e0ae9…

The "parent" commit (327c438) is correct.

NB: status change: critical reserved to crash and corruption (even if the effects are important in this issue)

Attachment Size
Trumpet score.mscz 6.43 KB
result.jpg 47.44 KB

FWIW, I kind of think we're too arbitrary in our assessment of "critical" to only mean crash/corruption. I've observed this before, but it bears repeating. I've opened a discussion on the forum to discuss this - see http://musescore.org/en/node/41321

Meanwhile, I've listed this bug in bold in my Hit List , and in fact put it in its own "Showstoppers" section at the top of the list. We've only had a couple of these really really serious regressions since the beta.

I've also bumped this critical just because it feels that way and I don't think our convention of reserving critical for crash/corruption (and then *always* using it for any crash/corruption no matter how obscure) is something we need to be quite so rigid about.

I can also make it crash :-)

1) open attached score
2) press Concert Pitch 4 times
3) undo

Result: crash

This is reproducible for me using these steps. I get a lot of other crashes with other combinations of operations, all of which involve an Undo as the last step, and all of which crash in Measure::remove(Segment *el).