Quarter tone playback Plugin Does Not Apply Tuning (even after updating the qml file to MuseScore 3 format)

• May 6, 2019 - 17:13
Reported version
3.0
Type
Functional
Frequency
Many
Severity
S2 - Critical
Reproducibility
Always
Status
closed
Regression
No
Workaround
Yes

The plugin does not apply any tuning change to notes with a quarter tone accidental.
To reproduce:
1) Use the python program that converts MuseScore 2 plugins to MuseScore 3 format (see https://musescore.org/en/handbook/developers-handbook/plugins-3x)
2) Install the plugin into MuseScore 3.0.5
3) Create a score, and place whatever notes you want, then place some quarter tone sharp (sharp with only one vertical slash) or quarter tone flat (flat with a diagonal slash)
4) Select those notes and attempt to use the plugin to apply the tuning
The notes with accidentals didn't have their tuning changed.
For example, the file below "quarter_tones.mscz". Several notes have quarter-tone accidentals, but when selected and having the plugin used on them, their tuning remained at +-0 cents. In fact, if you use this plugin on notes already set with quarter-tone tuning (like the notes in the example score in the plugin), it sets the tuning to 0.

Attachment Size
quarter_tones.mscz 10.98 KB

Comments

It hasn't yet been ported to MuseScore 3. If you tried, attach it here. Also try running it in the Plugin Editor, this may give some error messages that may hint at where the problem is.

I once tried to port it manually (just a one-line change), see https://musescore.org/en/node/61501/revisions/434749/view, but that didn't work either. And not having any use for that plugin myself I was too lazy to go any further ;-)

In reply to by Jojo-Schmitz

Here is the file created by the python program.
In the plugin creator, it gives the following errors:
Creating component failed.
line 291: SlashFlatButton is not a type
line 447: SlashSharpButton is not a type
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined
732:-1: ReferenceError: pedalPositions is not defined

Attachment Size
QuarterTonePlayback.qml 19.26 KB

Actually it looks like all the necessary APIs are working properly, this plugin just needs slightly more changes to get working properly. There seem to be two issues here:

1) The plugin relies on the order of entries in accidental types enumeration, and that order have largely changed between MuseScore 2 and MuseScore 3. That renders the tunings table defined in the plugin incorrect for MuseScore 3 so inappropriate tunings will be applied. While it is possible to update this table in the same manner, I would rather recommend though using some associative array (JavaScript object) to map symbolically defined accidental type values to tuning values. Something like

tunings = {
    Accidental.FLAT_SLASH: -50,
    Accidental.SHARP_SLASH: 50,
   // etc.
};

2) There are possibly some issues with using the result of getting note.accidentalType property as array/object index: expressions like tunings[note.accidentalType] yield some strange undefined values for me. This issue may need fixing on MuseScore side, but as a workaround you can force conversion of that result to a number when using it as index:
tunings[+note.accidentalType] should yield correct results in this case.

Aside from that, all the needed APIs should work well, so it should be possible to do a full port of this plugin to MuseScore 3 right away.

Thank you all for the comments. I am aware that the plug in does not work with Musescore 3.0.
I will try to fix it but unfortunately I do not have enough time at the moment. When I finish I will publish a new version.
Regards
Gilbert Yammine

Workaround No Yes

Dear all,
for MuseScore 3, please consider the AccidentalTuner plugin as the successor of the Quarter Tone Playback plugin.
Regards
Gilbert Yammine