We tested few E-Drum kits but got the following results:
Common midimaps are obeyed most time
Opening/Closing hihat seems to work like a statmachine
Some kits support stopping cymbals
Things we could implement:
Fix midimapping in Plugin UI: Some components do not map the common midimaps. I've faced a hihat on #26 (instead #42, #44 or #46) and a crash on #55 (supposed to be splash). We could introduce midimap configuration through the plugin's interface like the following: Let's use a cymbal with id XY-123 as crash. We'd need a database which tells us the midi pitch of that component (e.g. 55). The UI could offer to match “XY-123” to “Crash with description” (supported by the specific DG kit, e.g. using pitch #49), so each #55 would be handled as #49.
Opening / closing a hihat seems to send metadata midi events to the computer. Those could be interpreted by DG using a seperate class HihatStatemachine
. Caution: Some kits use 0 for an opened hihat, others use 0 for a closed one! So we'd need to change the statemachine's interpretation using a vendor-id-based switch.
Missing things which could be fixed by hand
If a song requires use of a china (e.g. #52) but the kit doesn't have another cymbal (e.g. only hihat + 2x crash + ride), we'd have to “cheat” and adjust by hand: Just play another cymbal and adjust the pitch afterwards by hand.
A song might contain doublebass parts (using alternating #35 and #36 for left and right kick drum). But a kit might have only one kick receiving component, so either #35 or #36 is used all the time. At the moment, my only idea would to fix this by hand, too.
Experiment: Playing (partially) untight on a Roland TD-11, record it with Ardour and use DrumGizmo + ArtStar-Kit … sounds like this: https://soundcloud.com/cglocke/testing-e-drums
Idea for checking an E-Drum-Kit: We could provide a section in the Plugin UI to check whether the user's edrumkit behaves like expected (e.g. to verify whether ride bow and ride bell are detected as individual notes).