-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change "Respell pitches" to "Recalculate pitches" and add the "Change enharmonic spelling" commands to the Tools menu #26130
base: master
Are you sure you want to change the base?
Conversation
I support this request. The command isn’t actually all that useful in practice (as I recall, it supposedly applies a heuristic that had been published in some paper, to determine the optimum spelling for all accidentals within the selection, but few people find the results convincing). But people definitely seem to confuse it with the “change enharmonic spelling” command and wonder why it doesn’t simply change the spelling of a single selected note. To make matters worse, the “change enharmonic spelling” command is one of the very few commands not exposed in the menus anywhere - you have to know the shortcut “J”. So I am concerned that regardless if/how “respell notes” gets renamed, it won’t solve the real problem, which is that people can’t figure out how to actually change enharmonic spelling. So I suggest also adding the change enharmonic spelling to the Tools menu. Possibly both variants (there is a version that changes the spelling in the current transposition mode only), but the main version for sure. |
742ad21
to
8580cdf
Compare
10970ac
to
6d97253
Compare
… enharmonic spelling" commands to the Tools menu Backport of musescore#26130
… enharmonic spelling" commands to the Tools menu Backport of musescore#26130
I agree with you @MarcSabatella that this PR doesn't solve the real problems at hand, which are:
I do not think that changing "respell pitches" to "recalculate pitches" solves anything. IMO, it actually makes an already bewildering function even harder to understand. Moreover, even if this new label is technically correct, it still won't help users understand the functionality. For this reason, I am not in favour of making this change ("correctness" is in and of itself not a reason to change something; above all else, UI copy has to be easy to understand). It would be better to tackle the real problems here. "Change enharmonic spelling" needs to be added to the Tools menu, and it would make a lot of sense if it was actually called "respell pitches", because it does exactly what you'd expect "respell pitches" it to do. We'd then resolve some of the current confusion behind the current "respell pitches" appearing to not do anything. As for the current "respell pitches" functionality, I'd like to see some of the documentation about how it's supposed to work – only I haven't yet succeeded in finding any. @MarcSabatella, are you able to point me in the right direction? From my own testing, I failed to get it to do anything on a range selection of 4 bars containing accidentals, but I did get it to make a few minor tweaks to a 2-page score that contained lots of accidentals. The results didn't make terribly much sense to me though. Unless there's an extremely compelling reason to continue supporting this functionality – and unless satisfactory documentation for it exists to explain it – I'd sooner see it removed. |
I did a search, and I believe this is the paper that provides the algorithm (the title and the author are given in comments within the MuseScore source code): https://ofai.at/papers/oefai-tr-2001-12.pdf There was also once a PR that purported to fix a flaw in our implementation algorithm: #5257 Also see this discussion: https://musescore.org/en/node/293080 |
I’m not crazy about taking the name of an existing poorly understood command and suddenly changing it to do something completely different. I have no attachment to keeping the existing respell pitches command as I’ve never heard of anyone saying they have been using it successfully, but if we’re really looking for a better name that, I’d suggest maybe “calculate optimum pitch spelling”. |
I've added that too, as the 2nd commit (would love to credit the author for it, but can't)
That's what this PR does, it the 3rd commit |
… enharmonic spelling" commands to the Tools menu Backport of musescore#26130
How about this? (Just a suggestion; not a decision.) Option 1:
Option 2:
I agree with @MarcSabatella that it's probably not a good idea to rename "Change enharmonic spelling" to "Respell pitches" because that will cause confusion with the existing command. Also, I think "Change" is a better description of what it does than "Respell". To me "Respell" sounds like it will reset (i.e. optimize) the spellings rather than simply change them to something else. |
Option 1 is less work, so I'll go for that ;-)
What's the deal here? |
d6dba93
to
693affd
Compare
What's up with uncrustify?
|
So uncrustify is crashing... @igorkorsukov do you have any idea what's going on there?
It was intentional to keep them separated; |
But can't those reuse the strings? |
Technically yes, but I'm afraid that will become messy: some |
There is one other thing to consider here, and @shoogle you might have some insight. Elsehwere I made the observation that the existing "respell pitches" is analogous to "regroup rhythms" in what it does: both algorithms are designed to enforce an internal model of what is "correct". They analyze your music and make changes only for the notes that are "incorrect" according to that model. For regroup rhythms, my understanding is that the algorithm used is intended to be exactly the same as what is used to notate rhythms on MIDI import, and indeed reuses at least some of the same code. I don't think this is true at all for respell pitches, though. As far as I know, the pitch spelling algorithm for MIDI import is entirely based on the key and the circle-of-fifths relationship of notes to the key, no other context considered. Whereas the respell pitches algorithm is all about surrounding context - especially horizontal. Long term, I think the best solution is to consider a new algorithm that can be applied to both MIDI import and the current "respell pitches" command (regardless of what we call it), and name the latter command in a way that makes sense. Short term, we either use that name for the current "respell pitches" command, or ditch that command until it is more usable. Plus, of course, add "change enharmonic spelling" to the menu. I personally think the name of that command is fine as is. The verb "change" is appropriately direct, and the phrase "enharmonic spelling" is precise. "Change pitch spelling" is somehow a little less obvious what it actually means. Something about B vs H? G vs Sol? I think the word "enharmonic" really helps with the clarity. |
…he "Change enharmonic spelling" commands to the Tools menu Backport of musescore#26130
Codestyle check failure is unrelated, see #26172 |
693affd
to
95124a7
Compare
Now it neeeds #26173 to fix the codestyle issue |
just a very minor nitpick, esp. when considering that this string is for accessibilty, i.e. only for screen readers. where capitalization wouldn't make a difference anyway. Came up in https://discord.com/channels/818804595450445834/818852942882275379/1329909513159180288 ff.
95124a7
to
e89daec
Compare
See discussion in https://discord.com/channels/818804595450445834/818852942882275379/1328981777443721368 ff.
"Respell" is a) confusing (see above, also gets confused for "Change enharmonic spelling", something quite different) and b) doesn't describe what really happens, "Recalculate" does a much better job here, IMHO.
Or, as done now, "Optimize enharmonic spellings".
Brings up another question: why does that particular string and quite a few others exist several times (well, twice), but in different contexts, ("undoableAction" vs. "action")? Seems new in master/4.5, as far as I can tell.