Add Drumset checkbox to the Mixer
I think this have to be reconsidered. There are many issues related with the remove of this feature.
See: #31631: Cannot use SFZ and non-GM soundfonts on percussion instruments
#31646: Percussion clef cannot be assigned to a standard staff
#29401: Drumset entry in Mixer doesn't load sound from drums-only soundfont
#25982: [MusicXML Export] invalid MusicXML when instruments are missing from drumset
Comments
Please add to that problems with MIDI file import.
MuseScore currently assumesTrack 10 is percussion which is not always the case as in the attached SMF which has a synth on Track 10.
Without control over whether a channel is assigned as a drumset it is impossible to reassign Track 10 to it's proper sound, and also impossible to assign the real drum track (#9) as a drumset track.
Unfortunately the checkbox involved has actually been removed rather than just disabled, so it's not quite such a simple matter to rectify.
Ok I think I have re-enabled it.
I just need to check that it works :)
Well it seems it won't compile.
Obviously something has changed since the code was altered resulting in a variable mismatch.
This is the compiler Error Log
[ 84%] Building CXX object mscore/CMakeFiles/mscore.dir/mixer.cpp.obj
C:\GitHub\MuseScore\mscore\mixer.cpp: In member function 'void Ms::PartEdit::drumsetToggled(bool)':
C:\GitHub\MuseScore\mscore\mixer.cpp:325:39: error: no matching function for call to 'Ms::Instrument::setUseDrumset(bool&)'
part->instr()->setUseDrumset(val);
^
C:\GitHub\MuseScore\mscore\mixer.cpp:325:39: note: candidate is:
In file included from C:/GitHub/MuseScore/libmscore/part.h:17:0,
from C:\GitHub\MuseScore\mscore\mixer.cpp:23:
C:/GitHub/MuseScore/libmscore/instrument.h:153:12: note: void Ms::Instrument::setUseDrumset(Ms::DrumsetKind)
void setUseDrumset(DrumsetKind val);
^
C:/GitHub/MuseScore/libmscore/instrument.h:153:12: note: no known conversion for argument 1 from 'bool' to 'Ms::DrumsetKind'
mscore\CMakeFiles\mscore.dir\build.make:4440: recipe for target 'mscore/CMakeFiles/mscore.dir/mixer.cpp.obj' failed
mingw32-make[3]: *** [mscore/CMakeFiles/mscore.dir/mixer.cpp.obj] Error 1
mingw32-make[3]: Leaving directory 'C:/GitHub/MuseScore/build.release'
CMakeFiles\Makefile2:266: recipe for target 'mscore/CMakeFiles/mscore.dir/all' failed
mingw32-make[2]: *** [mscore/CMakeFiles/mscore.dir/all] Error 2
mingw32-make[2]: Leaving directory 'C:/GitHub/MuseScore/build.release'
Makefile:125: recipe for target 'all' failed
mingw32-make[1]: *** [all] Error 2
mingw32-make[1]: Leaving directory 'C:/GitHub/MuseScore/build.release'
Makefile.mingw:27: recipe for target 'release' failed
mingw32-make: *** [release] Error 2
Trouble is my knowledge of C++ data structures is pretty sketchy.
The details of the reversals made in May 2013 are available from my AddBackDrumset branch from my GitHub repository:-
https://github.com/ChurchOrganist/MuseScore/commit/8997bd5cecccad9cf517…
Maybe someone can sort the variable mismatch?
Oops forgot to unassign!
If implemented, please check this: #11969: Unticking drumset doesn't restore normal notes
Many bugs depend on this reimplementation
That variable mismatch should stem from a change to enum DrumsetKind
Fixed in cf37ea318a
Automatically closed -- issue fixed for 2 weeks with no activity.
Can I safely delete my AddBackDrumset branch now or is it still required?
Should be ok.