Drumset of MusicXML sounds pitch

• Jul 19, 2019 - 23:52
Reported version
3.2
Type
Functional
Frequency
Few
Severity
S4 - Minor
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
Yes
Project
  1. Open attached mscz (produced in 3.2.3).
  2. 'File'>'Export…'.
  3. Choose MusicXML and save.
  4. Open MusicXML (also attached).

Result: Drums sound piano.

Workaround: Untick drumset and tick again.

Note: Also reproducible with a 2.3.2 mscz and MusicXML - it all works fine in that version.

Using MuseScore 3.2.3 - Mac 10.11.6.


Comments

MusicXML test file mtest/musicxml/io/testDrumset1.xml sounds like piano instead of drums in current MuseScore releases (3.4.2, 3.5.0 and master). MuseScore 2.3.2 and 3.0.0 still sound OK, could not quickly test the other releases.

The workaround mentioned is unticking / ticking the "Drumset" checkbox in the mixer panel. Saving the file imported from MusicXML (sounding like piano) in MuseScore format and loading the MuseScore file results in drum set sounds again. Thus it seems the mixer setting are incorrect for a drum set part after MusicXML import.

I found that here the bank is set to 128 for the channel part->instrument()->channel(0), which is the same pointer of masterScore midiMapping masterChannel. However, for the channel articulation, which was created here as a clone of that channel before the bank was set to 128 (if I understood correctly the code), the bank is not updated to 128 afterwards.

@dmitrio95 : sorry to bother you, but you are the expert in the midiMapping part of the code: do you know how to access and modify the corresponding articulation channel in the midiMapping?

Sorry for being late with this, but to answer this question:

> do you know how to access and modify the corresponding articulation channel in the midiMapping?

You can access the channel in MIDI mapping by getting playbackChannel() for the channel in the instrument, either with the corresponding helper method or directly from MasterScore.

But I think that making channel's settings correct before adding it to MIDI mapping (which is what you did in your PR) is indeed a better solution in this case.

Fix version
3.6.0