Skip to content

Commit

Permalink
don't transpose instrument change ks manually + cleanup (fix musescor…
Browse files Browse the repository at this point in the history
  • Loading branch information
sammik committed Aug 6, 2023
1 parent b03982e commit 60d596d
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/engraving/libmscore/transpose.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -489,17 +489,12 @@ bool Score::transpose(TransposeMode mode, TransposeDirection direction, Key trKe
} else if (e->isKeySig() && trKeys && mode != TransposeMode::DIATONICALLY) {
KeySig* ks = toKeySig(e);
Fraction tick = segment->tick();
bool startKey = tick == s1->tick();
bool addKey = ks->isChange();
if ((startKey || addKey) && !ks->isAtonal()) {
if (!ks->generated() && !ks->isAtonal() && !ks->forInstrumentChange()) {
Staff* staff = ks->staff();
Key oKey = ks->concertKey();
Key nKey = transposeKey(oKey, interval);
KeySigEvent ke = ks->keySigEvent();
// don't transpose instrument change KS, was automagically translated when precedent KS was changed
if (!ke.forInstrumentChange() || startKey) {
ke.setConcertKey(nKey);
}
ke.setConcertKey(nKey);
// undoChangeKey handles linked staves/parts and generating new keysigs as needed
// it always sets the keysig non-generated
// so only call it when needed
Expand Down

0 comments on commit 60d596d

Please sign in to comment.