musescore / musescore/MuseScore
MusicXML alter element imported into an accidental or ignored
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Issue type
Import/export issue
Bug description
The MusicXML alter element is not imported verbatim into the note tuning.
As far as I can tell, the current behavior does the following:
- If the alter value corresponds to an existing accidental alteration value, the accidental is used
- If the alter value does not correspond to any accidental, it is ignored
- If an accidental is specified in the MusicXML, it is imported but the alter value is ignored
This behavior is confusing and ultimately incorrect, because it means that non-standard tunings cannot be imported from MusicXML. As a specification, MusicXML decouples the usage of the accidental (for display only) from the alter value (for playback).
Steps to reproduce
Examine the attached MusicXML score and observe the 3 cases mentioned in the description:
- Measure 1 E has an alter value of -0.5 and an accidental
- Measure 3 D has an alter value of +0.05
- Measure 3 E has an alter value of -0.15 and an accidental
On import:
- Measure 1 E is imported correctly
- Measure 3 D alter value is ignored
- Measure 3 E is imported with correct accidental but alter value is ignored and replaced with a MuseScore default
Screenshots/Screen recordings
No response
MuseScore Version
4.3.1-241490902, revision: github-musescore-musescore-026c26b
Regression
I don't know
Operating system
Pop!_OS 22.04 LTS
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by importing the attached rast-tetrachord.zip MusicXML score and trace the MusicXML import handling for alter and accidental values. Done means non-standard alter values are preserved for playback independently of display accidentals, including the three reproduced cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100