Chord modifier vertical offset

• Oct 12, 2021 - 10:37

This is not a bug, just something I want to understand. I hope this is the right place to post this.

Sometimes I might want to offset chord modifiers for aesthetical purposes.

If, however, I want to write, say, Cadd2 as C(add2), strange things start happening.
On the left musescore - on the right what I found someone might want to make.
modifier offset.png

It appears, that "add", "no" and "omit" are not defined as modifiers, extensions or anything else and can't be used as such.

If I add the same tokens etc. for "sus", as what triangle/t has, it starts to work.
What bothers me though, is that I it still cant make "sus" act like "t"(triangle) - It's always a modifier even though both have the same treatment in the chords_std.xml. Or am I missing something?
sus versus triangle.png
This is not a problem, but I wonder why this happens. I've included the modified xml.

Of course all of this can be solved by defining each chord separately, but I'm interested in knowing what's going on here.

Attachment Size
chords_std - added sus.xml 11.15 KB


There is a lot of special-casing that goes in the chord symbol parsing and rendering code. Work is progressing to provide more control & flexibility for a post-MuseScore-4 release, but meanwhile, some things to keep in mind:

  • The meanings of quality, extension, and modifier are pretty set in stone - the indicators for "minor", "major", "diminished", and "augmented" are always qualities when they come immediately after the root, the first number to appear after an optional qualifier is always an extension, everything else is a modifier.

  • Triangle is special cases to be treated as a quality when occurring directly after the root, a modifier otherwise. No other symbols have this property as far as I recall. Hmm, in principle "+" or "-" could be (since some use them as aliases for # and b in denoting alterations), but it isn't implemented that way currently.

  • "sus" is one of the special-cased symbols, and obviously, the special casing doesn't currently deal with parentheses very well. Those are also special-cased but I guess we never considered they'd be used together.

Do you still have an unanswered question? Please log in first to post your question.