musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.06k stars 2.6k forks source link

The same tuning cent value gets playbacked differently in MS 3 vs 4 #21391

Open EaryChow opened 7 months ago

EaryChow commented 7 months ago

Issue type

General playback bug

Bug description

The same tuning value on notes gets playbacked differently in the two versions.

Steps to reproduce

  1. Open this file saved from MuseScore 3 in both 3 and 4: Test31edo.mscz.txt Delete the .txt at the end of the file name, it's just a workaround for GitHub's file type limitation.
  2. Playback the notes in MS 3, see it's supposed to be an evenly ascending microtonal scale.
  3. Playback the notes in MS 4, see how the notes are played to be unevenly jumping up and down.
  4. Check the tuning of each note, and see how they are the same numbers in two versions.

Screenshots/Screen recordings

https://github.com/musescore/MuseScore/assets/59176246/1b49312e-2e08-49c4-82f8-6545366f7d1f

MuseScore Version

MuseScore version (64-bit): 4.2.1-240230937, revision: github-musescore-musescore-d757433

Regression

Yes, this used to work in MuseScore 3.x and now is broken

Operating system

Windows 11

Additional context

No response

cbjeukendrup commented 7 months ago

Perhaps it's because in MS4 the accidentals themselves also affect the tuning of the note (by some value that is hard-coded per accidental type)?

EaryChow commented 7 months ago

(by some value that is hard-coded per accidental type)

After some more testing, it does seem like the accidentals have problematic 24 (?) edo hardcoded assuptions. Is there any possible fix then? Ideally maybe it should read the system text that says "31edo", or maybe some other way to configure the specific edo tunings. Otherwise reverting to old behavior in MS3 seems to be a better choice than the current state.

cbjeukendrup commented 7 months ago

Since different tuning systems use visually the same accidental for different meanings, I think the ultimate solution is indeed

The first option shouldn't be too difficult, the second is probably something for the more distant future.

For now, as a workaround, you can of course do the following: say, you want that first accidental to cause an offset of 38 cents; by default it would cause an offset of 50 cents. So you select the note, and enter a tuning offset of 38 - 50 = -12.

EaryChow commented 7 months ago

either allowing the user to customise the tuning value of each accidental

In different edo tunings, the non-accidental notes are also microtonal compared with 12 edo, like the C in 31 edo is different from the C in 12 edo. So if we can specify certain tuning system for each accidentals, while having C be the 12 edo C, it's going to be confusing.

So I guess the second option is the only elegant solution.

Since it's going to be a distant future, I need to remind the microtonal plugin author of this, I don't think that author is aware of this, as the plugin still assigns the same MS3 tuning value in MS4.