Hello,
Each DrumGizmo kit is different, but a well defined standard for MIDI maps might make life easier for both kit-makers (who don't have to come up with their own layouts) and users, who can just swap different drumkits without having to modify their MIDI sequences. This kind of auditioning of drum samples is a very common workflow, and can only make DrumGizmo more accessible.
The General MIDI standard is already well established, and could be a starting point. It only defines a set number of different sounds for the same hits, however (e.g. two bass drum kicks), and would need to be extended.
What do you think about it?
Standardized MIDI map schema
Moderators: MattKingUSA, khz, muldjord, deva
-
- Established Member
- Posts: 1516
- Joined: Sun Jan 27, 2019 2:25 pm
- Location: Italy
- Has thanked: 385 times
- Been thanked: 299 times
Standardized MIDI map schema
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]
Please donate time (even bug reports) or money to libre software
Jam on openSUSE + GeekosDAW!
Please donate time (even bug reports) or money to libre software
Jam on openSUSE + GeekosDAW!
-
- Established Member
- Posts: 29
- Joined: Tue Jan 10, 2017 5:28 pm
- Has thanked: 4 times
- Been thanked: 4 times
Re: Standardized MIDI map schema
I've been using DrumGizmo a lot and I like your idea, I think. There are actually 127 midi notes available, true? Most of the percussion maps start with the Kick at 35 and go up, sometimes somewhat randomly to, for example in the DRS kit, note 76.
I'm about to make my own 'unified' DrumGizmo map of the 4 kits on their site. It might be as easy as revising the MIDImap files for each kit. Maybe for a start - cluster Toms 1 - 15, Snares 16 - 30, Kicks 31 - 40, Cymbals ( I want a lot of them) 41 - 60
I think that all you need to do is change the midi number in the midimap.xml file that comes with each kit.
I'm about to make my own 'unified' DrumGizmo map of the 4 kits on their site. It might be as easy as revising the MIDImap files for each kit. Maybe for a start - cluster Toms 1 - 15, Snares 16 - 30, Kicks 31 - 40, Cymbals ( I want a lot of them) 41 - 60
I think that all you need to do is change the midi number in the midimap.xml file that comes with each kit.
-
- Established Member
- Posts: 1516
- Joined: Sun Jan 27, 2019 2:25 pm
- Location: Italy
- Has thanked: 385 times
- Been thanked: 299 times
Re: Standardized MIDI map schema
Yes, it's not a programming effort, more a matter of publishing a document which describes a common mapping standard for all drumkits.12strings2hands wrote:I've been using DrumGizmo a lot and I like your idea, I think. There are actually 127 midi notes available, true? Most of the percussion maps start with the Kick at 35 and go up, sometimes somewhat randomly to, for example in the DRS kit, note 76.
I'm about to make my own 'unified' DrumGizmo map of the 4 kits on their site. It might be as easy as revising the MIDImap files for each kit. Maybe for a start - cluster Toms 1 - 15, Snares 16 - 30, Kicks 31 - 40, Cymbals ( I want a lot of them) 41 - 60
I think that all you need to do is change the midi number in the midimap.xml file that comes with each kit.
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]
Please donate time (even bug reports) or money to libre software
Jam on openSUSE + GeekosDAW!
Please donate time (even bug reports) or money to libre software
Jam on openSUSE + GeekosDAW!
Re: Standardized MIDI map schema
We tried to be somewhat consistent, but the drumkits were created over several years and then consistency wasn't possible anymore for the later kits due to "wrong" choices in the first one(s). Fortunately, it is very easy to publish and use new midi maps. However, unfortunately, there is no suitable standard (as far as I know) for drumkits; General MIDI just doesn't cover the kind of drumkits we have with a lot of cymbals etc.
As far as making our own standard, I think we should as much as possible consider already existing habits/quasi-standards. So, General MIDI is probably a good starting point, but it is not clear which of the drums we can "substitute", as it is not clear what kind of drumkits will be created in the future, so we don't know which drums will be unused in all the future drumkits.
Is anyone aware of a good standard which we could use with all our already existing kits?
As far as making our own standard, I think we should as much as possible consider already existing habits/quasi-standards. So, General MIDI is probably a good starting point, but it is not clear which of the drums we can "substitute", as it is not clear what kind of drumkits will be created in the future, so we don't know which drums will be unused in all the future drumkits.
Is anyone aware of a good standard which we could use with all our already existing kits?
-
- Established Member
- Posts: 29
- Joined: Tue Jan 10, 2017 5:28 pm
- Has thanked: 4 times
- Been thanked: 4 times
Re: Standardized MIDI map schema
Well, first off, let me say that the Drum Gizmo kits are spectacular samples, and it is a wonderful piece of software to use, as I do, recording and mixing in Ardour.
I have combined midimaps for 3 of the kits so far (attached). I found it too difficult to incorporate with GM standard. The standard fits and entire Kkit into what, 30 or 40 numbers? What I did was to put all the 'skins' from 0 - 39, then cymbals from 40 - 127
Like this:
Toms start at 0, snares start at 16, Kicks at 35,
HiHats 40, Crash 61, Rides at 72, China 90, Splash 100
Anyone with better suggestions please come quick before I do more kits
<?xml version="1.0" encoding="UTF-8"?>
<!-- KitName CrocellKit -->
<midimap>
<map note="102" instr="SplashR"/>
<map note="101" instr="SplashL"/>
<map note="92" instr="ChinaR"/>
<map note="91" instr="ChinaL"/>
<map note="86" instr="RideRBell"/>
<map note="72" instr="RideR"/>
<map note="66" instr="CrashRStopped"/>
<map note="65" instr="CrashLStopped"/>
<map note="64" instr="CrashRXtra"/>
<map note="62" instr="CrashR"/>
<map note="61" instr="CrashL"/>
<map note="51" instr="HihatOpen"/>
<map note="49" instr="HihatSemiOpen"/>
<map note="46" instr="HihatPedalHit"/>
<map note="45" instr="HihatClosedNoPedal"/>
<map note="44" instr="HihatPedal"/>
<map note="41" instr="HihatClosed"/>
<map note="36" instr="KDrumR"/>
<map note="35" instr="KDrumL"/>
<map note="19" instr="SnareRest"/>
<map note="18" instr="SnareRim"/>
<map note="17" instr="SnareRimShot"/>
<map note="16" instr="Snare"/>
<map note="4" instr="FTom2"/>
<map note="3" instr="FTom1"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>
<?xml version="1.0" encoding="UTF-8"?>
<!-- KitName MuldjordKit3 -->
<midimap>
<map note="92" instr="China"/>
<map note="86" instr="RideRBell"/>
<map note="85" instr="RideLBell"/>
<map note="72" instr="RideR"/>
<map note="71" instr="RideL"/>
<map note="62" instr="CrashR"/>
<map note="61" instr="CrashL"/>
<map note="51" instr="HihatOpen"/>
<map note="41" instr="HihatClosed"/>
<map note="36" instr="KdrumR"/>
<map note="35" instr="KdrumL"/>
<map note="19" instr="SnareRest"/>
<map note="16" instr="Snare"/>
<map note="4" instr="Tom4"/>
<map note="3" instr="Tom3"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>
<?xml version="1.0" encoding="UTF-8"?>
<!-- drumkit Name DRS -->
<midimap>
<map note="86" instr="Ride_shank_bell"/>
<map note="84" instr="Ride_tip_bell"/>
<map note="82" instr="Ride_tip_bell_chain"/>
<map note="80" instr="Ride_tip_chain"/>
<map note="78" instr="Ride_rest"/>
<map note="76" instr="Ride_shank"/>
<map note="74" instr="Ride_whisker"/>
<map note="72" instr="Ride_tip"/>
<map note="66" instr="Crash_right_whisker"/>
<map note="65" instr="Crash_left_whisker"/>
<map note="64" instr="Crash_right_tip"/>
<map note="63" instr="Crash_left_tip"/>
<map note="62" instr="Crash_right_shank"/>
<map note="61" instr="Crash_left_shank"/>
<map note="53" instr="Hihat_open_whisker"/>
<map note="52" instr="Hihat_open_tip"/>
<map note="51" instr="Hihat_open"/>
<map note="49" instr="Hihat_semi_open"/>
<map note="47" instr="Hihat_closed_whisker"/>
<map note="45" instr="Hihat_closed_shank"/>
<map note="44" instr="Hihat_foot"/>
<map note="41" instr="Hihat_closed"/>
<map note="36" instr="Kdrum_with_contact"/>
<map note="35" instr="Kdrum_without_contact"/>
<map note="22" instr="Snare_circle_whisker"/>
<map note="21" instr="Snare_whisker"/>
<map note="19" instr="Snare_rest"/>
<map note="18" instr="Snare_rim"/>
<map note="16" instr="Snare"/>
<map note="13" instr="Tom3_whisker"/>
<map note="12" instr="Tom2_whisker"/>
<map note="11" instr="Tom1_whisker"/>
<map note="3" instr="Tom3"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>
I have combined midimaps for 3 of the kits so far (attached). I found it too difficult to incorporate with GM standard. The standard fits and entire Kkit into what, 30 or 40 numbers? What I did was to put all the 'skins' from 0 - 39, then cymbals from 40 - 127
Like this:
Toms start at 0, snares start at 16, Kicks at 35,
HiHats 40, Crash 61, Rides at 72, China 90, Splash 100
Anyone with better suggestions please come quick before I do more kits
<?xml version="1.0" encoding="UTF-8"?>
<!-- KitName CrocellKit -->
<midimap>
<map note="102" instr="SplashR"/>
<map note="101" instr="SplashL"/>
<map note="92" instr="ChinaR"/>
<map note="91" instr="ChinaL"/>
<map note="86" instr="RideRBell"/>
<map note="72" instr="RideR"/>
<map note="66" instr="CrashRStopped"/>
<map note="65" instr="CrashLStopped"/>
<map note="64" instr="CrashRXtra"/>
<map note="62" instr="CrashR"/>
<map note="61" instr="CrashL"/>
<map note="51" instr="HihatOpen"/>
<map note="49" instr="HihatSemiOpen"/>
<map note="46" instr="HihatPedalHit"/>
<map note="45" instr="HihatClosedNoPedal"/>
<map note="44" instr="HihatPedal"/>
<map note="41" instr="HihatClosed"/>
<map note="36" instr="KDrumR"/>
<map note="35" instr="KDrumL"/>
<map note="19" instr="SnareRest"/>
<map note="18" instr="SnareRim"/>
<map note="17" instr="SnareRimShot"/>
<map note="16" instr="Snare"/>
<map note="4" instr="FTom2"/>
<map note="3" instr="FTom1"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>
<?xml version="1.0" encoding="UTF-8"?>
<!-- KitName MuldjordKit3 -->
<midimap>
<map note="92" instr="China"/>
<map note="86" instr="RideRBell"/>
<map note="85" instr="RideLBell"/>
<map note="72" instr="RideR"/>
<map note="71" instr="RideL"/>
<map note="62" instr="CrashR"/>
<map note="61" instr="CrashL"/>
<map note="51" instr="HihatOpen"/>
<map note="41" instr="HihatClosed"/>
<map note="36" instr="KdrumR"/>
<map note="35" instr="KdrumL"/>
<map note="19" instr="SnareRest"/>
<map note="16" instr="Snare"/>
<map note="4" instr="Tom4"/>
<map note="3" instr="Tom3"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>
<?xml version="1.0" encoding="UTF-8"?>
<!-- drumkit Name DRS -->
<midimap>
<map note="86" instr="Ride_shank_bell"/>
<map note="84" instr="Ride_tip_bell"/>
<map note="82" instr="Ride_tip_bell_chain"/>
<map note="80" instr="Ride_tip_chain"/>
<map note="78" instr="Ride_rest"/>
<map note="76" instr="Ride_shank"/>
<map note="74" instr="Ride_whisker"/>
<map note="72" instr="Ride_tip"/>
<map note="66" instr="Crash_right_whisker"/>
<map note="65" instr="Crash_left_whisker"/>
<map note="64" instr="Crash_right_tip"/>
<map note="63" instr="Crash_left_tip"/>
<map note="62" instr="Crash_right_shank"/>
<map note="61" instr="Crash_left_shank"/>
<map note="53" instr="Hihat_open_whisker"/>
<map note="52" instr="Hihat_open_tip"/>
<map note="51" instr="Hihat_open"/>
<map note="49" instr="Hihat_semi_open"/>
<map note="47" instr="Hihat_closed_whisker"/>
<map note="45" instr="Hihat_closed_shank"/>
<map note="44" instr="Hihat_foot"/>
<map note="41" instr="Hihat_closed"/>
<map note="36" instr="Kdrum_with_contact"/>
<map note="35" instr="Kdrum_without_contact"/>
<map note="22" instr="Snare_circle_whisker"/>
<map note="21" instr="Snare_whisker"/>
<map note="19" instr="Snare_rest"/>
<map note="18" instr="Snare_rim"/>
<map note="16" instr="Snare"/>
<map note="13" instr="Tom3_whisker"/>
<map note="12" instr="Tom2_whisker"/>
<map note="11" instr="Tom1_whisker"/>
<map note="3" instr="Tom3"/>
<map note="2" instr="Tom2"/>
<map note="1" instr="Tom1"/>
</midimap>