Voice number not respected from MusicXML import

• Dec 27, 2010 - 03:52
S4 - Minor

Current behaviour: Measure 1: voice 1 interpreted as voice 2, and vice versa.
Expected behaviour: Measure 1: voice 1 should be interpreted as voice 1, etc. respectively.

Steps to reproduce problem:

  1. In MuseScore, open attached XML file two_voices.xml.
  2. See in measure 1, voice 2 appears as upper voice (should be lower voice) and vice versa.
  3. See measure 2 is correct.

Note: MusicXML source happens to list voice 2 before voice 1 in measure 1. Source for measure 2 lists voice 1 before voice 2.

MuseScore Rev. 3507
Windows XP SP3

Attachment Size
two_voices.xml 10.06 KB


Reported behaviour confirmed, to be investigated. Not sure if I am able to fix this before 1.0.

Note that, as far as I know, neither MusicXML nor MuseScore attach any meaning to the voice number, such as which voice number corresponds to the lowest voice.

Nevertheless, if possible MuseScore probably should not needlessly change voice numbers.

Thank you for responding to this issue.

In a closed (Novello) choral SATB score, the treble clef holds the soprano and alto parts, and the bass clef holds the tenor and bass parts.

If in a MusicXML file, the soprano part is associated with Voice 1 and the alto part with Voice 2, it is unacceptable to interpret MusicXML Voice 2 (alto) as MuseScore Voice 1 (soprano) in measures where the MusicXML file lists Voice 2 before Voice 1, when other measures in the same MusicXML fie list Voice 1 first. (e.g. Sing wrong part; notes tied across a barline don't work.)

[Although in singing, two parts may occasionally cross-over (soprano going lower than the alto part), the assigned voice numbers should be maintained. Thus I agree that there should be no "meaning" associated with voice number, just that in any particular measure whatever was Voice 1 in MusicXML, be kept as Voice 1 once imported into MuseScore.]


the effect you describe in the previous comment is actually a bug, I filed it as issue #8428. It is solved and will be in the upcoming 1.0 release. The solution does not result is using the same voice number in MuseScore as is used in the MusicXML file, but at least it makes the association consistent for the whole part.

Your original request (using the same voice number in MuseScore as is used in the MusicXML file) is actually too complicated to change in time for the 1.0 release.

Status (old) active fixed

Implemented a more structural solution: before assigning voices, the MusicXML importer first analyses all voices present in the MusicXML file. It then tries to allocate the MuseScore voices in the same order as they are numbered in the MusicXML file. Although, due to design limitations in MuseScore, it is not always possible to assign identical voice numbers, for the common case where the MusicXML file numbers voices 1, 2 and up, the MuseScore voice numbers will actually be identical.

Solution is delivered to both the 0.9.6 branch and to the trunk. This means it will appear in the nightly builds and will be in the upcoming 2.0 release (and also in 1.2 if that ever materializes).