euwbah / musescore-microtonal-edo-plugin

Microtonal MuseScore plugin to retune notes in any EDO. Deprecated, see musescore-xen-tuner (link below).
https://github.com/euwbah/musescore-xen-tuner/
GNU Lesser General Public License v3.0
49 stars 9 forks source link

Pitch up and retune recognize incorrect pitch for note when 8va is present #23

Open bluebear94 opened 3 years ago

bluebear94 commented 3 years ago

With the attached score test107.mscz.txt (rename to test107.mscz since GitHub doesn't like mscz files):

The seventh eighth note in the top staff of measure 12 should be recognized as a F+, but the pitch up and retune plugins seem to think it's an F# instead. (Retune tunes it as an F#, and pitch up turns it in into a F+#, instead of the expected F#.) Strangely enough, the pitch down plugin turns it into an F natural.

Possibly related: the pitch up with arrows plugin flat out (no pun intended) fails silently.

bluebear94 commented 3 years ago

Note that I could reproduce this bug in both MuseScore 3.5.2 and 3.6, using the latest release of the plugins.

FloraCanou commented 3 years ago

Well, remove 8va and everything gets right. @euwbah Btw this song sounds like Touhou :D

bluebear94 commented 3 years ago

Well, that solves it, but this bug should still be fixed. I'll also create a new issue for the pitch up with arrows plugin.

euwbah commented 3 years ago

I've been trying to figure it out, turns out that MuseScore is very explicit with accidentals when the notes are under 8va and similar lines. If the note in question was set to F natural, were you to select the natural accidental and press delete to attempt to delete the accidental (I did this in Ms 3.6), MuseScore's internal engine would not let you do it. The accidental would still be there. Moving the end of the 8va line before and after the note in question would hide and reveal the explicit natural accidental respectively.

Unfortunately, there is no known solution for this as MuseScore would not remove the explicit natural accidental unless the note was F# instead, and there's no way for the note to be registered by MuseScore's internals as an F natural if there are no explicit accidentals on the note. (the plugin can only function if notes with irregular/microtonal accidentals are regarded as naturals by MuseScore's internal tonal pitch class system)

Since this plugin is a hugeeeeeee disgusting hack that fights against all the accidental checking functions of MuseScore's internals, and the effect on accidental behaviour the 8/15/23 alta/bassa lines have are unknowns, the best solution as of now is to use the 8va treble clef instead, as I have been using.

If someone could figure out exactly how accidental behaviour differs under the influence of an alta/bassa line, that would be great! For now I would say that this is an issue of figuring out the edge cases of MuseScore's internals.