Creating a Drumgizmo kit from existing samples

This post is about the Drumgizmo plugin I use often under Linux as a drum plugin. It has some free drumkits on the homepage to download, but I also wanted to create a drumkit out of samples I already had. I bought a commercial multi-velocity sampled drum library from drumdrops (the Mapex Heavy Rock Kit to be precise), which I really like, and created a drumgizmo patch for it. You can hear drumgizmo with this kit in action e.g. here: https://soundcloud.com/michael-oswald-5/eli-rises-send-you-away-mixing-exercise

But of course, this all can be applied to any sample collection you have. Best is to have the same drum sampled in multiple velocities, because this lets drumgizmo shine.

A drumgizmo patch is just a batch of XML files which work together, so with a basic text editor you should be fine. Of course it is easier with an XML editor (I used XML Copy Editor since it was pre-installed).

Preconditions

You should have the samples in WAV format available. Drumgizmo normally uses multi-channel WAV files (e.g. a normal stereo file has 2 channels). Each channel is a microphone. So if a real drumkit was recorded with 16 microphones (e.g. like the DRS Kit or the Muldjord Kit), the samples are 16 channel WAV files, one for each microphone.

If you don’t have this luxury and have only mono or stereo samples (which was the case for the Drumdrops Mapex Kit), it’s also fine. Drumgizmo is quite flexible with this.

If you don’t have WAV samples, but something like SF2 format, there are converters which can extract the samples out of it.

Folder Structure

I would recommend to create a single folder with the drumkit name, then inside a folder for the samples and a folder for the instrument XML files. Otherwise it gets really quirky by the sheer amount of XML files.

Instrument Files

The instrument files specify the interpretation of the sample WAV files. You can (and should) have sometimes more instruments but on the same channels. So e.g. on the hihat you could have a instrument for closed hihat, one for open and one for pedal, but all are mapped to the same channel for output.

Here is an example of the Mapex Heavy Rock kit patch:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version='1.0' encoding='UTF-8'?>
<instrument version="2.0" name="Kick">
 <samples>
  <sample name="Kick-1" power="8.0">
   <audiofile channel="KickEQ2L" file="../../SAMPLES/Kick Drum/EQ2 Head/MPEX_KICK_EQFL_HT_005_V1.wav" filechannel="1"/>
   <audiofile channel="KickEQ2R" file="../../SAMPLES/Kick Drum/EQ2 Head/MPEX_KICK_EQFL_HT_005_V1.wav" filechannel="2"/>
  </sample>
  <sample name="Kick-2" power="16.0">
   <audiofile channel="KickEQ2L" file="../../SAMPLES/Kick Drum/EQ2 Head/MPEX_KICK_EQFL_HT_005_V2.wav" filechannel="1"/>
   <audiofile channel="KickEQ2R" file="../../SAMPLES/Kick Drum/EQ2 Head/MPEX_KICK_EQFL_HT_005_V2.wav" filechannel="2"/>
  </sample>
 
   ...
 
 </samples>
</instrument>

The instrument assigns the samples with their path to a channel and a hit power (which will then be used for the velocity groups). As shown above, Drumdrops provides the samples in ascending velocity (the _V1 until _V16 suffixes for the filenames). Since all samples are in stereo (2 channels), the filechannel 1 (left of stereo) is mapped to KickEQ2L channel and the filechannel 2 of the same file (right of stereo) is mapped to the KickEQ2R channel. This is packed together into a drumgizmo “sample” with the specified name and the hit power.

As for the hit power, drumgizmo seems to be quite flexible here, you can specify any values, they just have to relate to each other. I chose, because the MIDI velocity is from 0 to 127, that the _V16 sample (with the greatest velocity) is put to 128 and since the samples are delivered with 16 velocity layers I divided by 128/16 = 8, so first sample gets hit power 8, second gets 16, third gets 24 and so on.

If you have done this for every sample available for this instrument (all velocity layers), assign a final name for the instrument in the instrument tag (“Kick” in this example, could be “HiHatClosed”, “HiHatOpen” etc). This name is referenced later.

Save this XML file into the Instrument folder created before.

Repeat this for all instruments.

Drumkit File

The drumkit file then puts all instruments together into a single drumkit. First, it is wise to think about the channel layout. Drumgizmo has 16 output channels in the standard version, so the instruments should be mapped to output channels wisely. Since the Mapex Kit only contained stereo samples, I chose to assign the channels layout as shown below. So there is a stereo Kick, snare, HiHat, then the 3 Toms, the Ride and all other Cymbals are mapped to the Overheads. So all 16 ouput channels of Drumgizmo are covered. Let’s look at the example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="UTF-8"?>
<drumkit name="MapexKit" description="A kit created by M.Oswald from Samples of the Mapex Heavy Rock Kit from DrumDrops">
  <channels>
   <channel name="01_KickL"/>
   <channel name="02_KickR"/>
   <channel name="03_SnareL"/>
   <channel name="04_SnareR"/>
   <channel name="05_HiHatL"/>
   <channel name="06_HiHatR"/>
   <channel name="07_FloorTomL"/>
   <channel name="08_FloorTomR"/>
   <channel name="09_LoRackTomL"/>
   <channel name="10_LoRackTomR"/>
   <channel name="11_HiRackTomL"/>
   <channel name="12_HiRackTomR"/>
   <channel name="13_RideL"/>
   <channel name="14_RideR"/>
   <channel name="15_OVL"/>
   <channel name="16_OVR"/>
  </channels>
  <instruments>
    <instrument name="Kick" file="Instruments/Kick.xml">
	   <channelmap in="KickEQ2L" out="01_KickL"/>
	   <channelmap in="KickEQ2R" out="02_KickR"/>
    </instrument>
    <instrument name="Kick2" file="Instruments/Kick2.xml">
	   <channelmap in="KickEmadL" out="01_KickL"/>
	   <channelmap in="KickEmadR" out="02_KickR"/>
    </instrument>
    <instrument name="SnareCentre" file="Instruments/PantherSnareCentre.xml">
	   <channelmap in="SnareL" out="03_SnareL"/>
	   <channelmap in="SnareR" out="04_SnareR"/>
    </instrument>
    <instrument name="SnareEdge" file="Instruments/PantherSnareEdge.xml">
	   <channelmap in="SnareL" out="03_SnareL"/>
	   <channelmap in="SnareR" out="04_SnareR"/>
    </instrument>
    <instrument name="SnareRimshot" file="Instruments/PantherSnareRimshot.xml">
	   <channelmap in="SnareL" out="03_SnareL"/>
	   <channelmap in="SnareR" out="04_SnareR"/>
 
   ...
 
  </instruments>
</drumkit>

The instruments are assigned by name and the file. I put the instrument XML files into the folder “Instruments”, and the drumkit XML file is one level higher, so the path is e.g. “Instruments/Kick.xml” and the name of the instrument is taken from the name attribute of the instrument tag in the Kick.xml file. And then the channels from the Instrument file are mapped to the output channels of drumgizmo (the KickEQ2L and R are mapped to 01_KickL and 02_KickR. I named them that way, so the number 01 is the output channel number of Drumgizmo, then followed by the Instrument and if it is left or right (because of stereo samples). Note that there are 2 kick drums mapped to the same output channels. This should also be done for other instruments (e.g. Snare, SnareRimshot and Snare Roll are different instruments, but all mapped to the same output channel).

Repeat this for all instruments and save the drumkit XML file.

MIDI Map

As a last step, the instruments of the drumkit have to be mapped to MIDI notes, because of course drumgizmo gets MIDI notes from the sequencer or DAW and should play the samples. So in the same folder as the drumkit file, create a MIDI map file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<midimap>
	<map note="35" instr="Kick"/>
	<map note="36" instr="Kick2"/>
	<map note="38" instr="SnareCentre"/>
	<map note="82" instr="SnareEdge"/>
	<map note="83" instr="SnareRimshot"/>
	<map note="37" instr="SnareSidestick"/>
	<map note="28" instr="SnareFlam"/>
	<map note="42" instr="HiHatFullyClosed"/>
	<map note="68" instr="HiHatClosed"/>
	<map note="71" instr="HiHatOpenQuarter"/>
 
        ...
 
</midimap>

This is very simple, each instrument from the drumkit file should be in this file and assigned to a note. There are MIDI charts for drums available, just google for them (e.g. https://upload.wikimedia.org/wikipedia/commons/8/85/GMStandardDrumMap.gif). I recommend to use the GM (General MIDI) standard as far as possible, since then the created MIDI files are more likely to work with other drum plugins

That’s it!

Play!

Then try it out! Load the drumkit file and the MIDI map into drumgizmo. If you have made a mistake somewhere, they will pop up time after time. E.g. if a path to a sample is not correct or you forgot an instrument or the name/channel assignment is not right, you won’t hear that instrument. Also, if you give a note twice in the MIDI map, of course one instrument will disappear (happened to me). So it’s good to triple check everything.

Happy drumming with your new kit!

2 thoughts on “Creating a Drumgizmo kit from existing samples

  1. Daniel

    Hello, congratulations on the post. I use Drumgizmo with the “Basic Kit”, but when recording the audio tracks, the sound is replicated to another track, ie for example in the “Ride” track it is also recorded at low volume the “Snare” or Some other piece. Do you have any tips to give me ??

    Reply
    1. michaelo Post author

      Thanks!

      Yes, this is called bleed and is a result of recording real drums with real microphones, which basically pick up everything in the room on a single hit but in lower volume. So that’s actually a thing that is a bit annoying, but also make the drums sounding more “natural”. In mixing a track in certain genres, a fair amount of time is often spent on reducing bleed.

      With the basic kit I assume you mean the DRS kit. And yes, on it the bleed is insanely high which is probably because of the microphone placement used at recording the kit. Especially the snare is far too much on the kick channel. Which is why I don’t use the DRS kit, I tried several times to get a good mixed sound with bleed reduction, but never managed to.

      Another thing are the overhead- and room-microphone-tracks, which explicitly should record all other drums and are used to give more liveness, fullness and so on.

      Actually, you have a few options:
      – use another kit than the DRS kit. For standard drumgizmo, the Muldjord kit has a lot less bleed, but it is more a metal kit

      – use a kit of sample libraries. They have no bleed but often overheads and room microphone tracks. I don’t know if you have seen them, I did two open source ones for LMP: http://libremusicproduction.com/news/20161109-two-high-quality-drumkits-drumgizmo but you can also get commercial high quality ones from DrumDrops (currently only the Mapex heavy rock kit, the Vintage Folk kit and the Modern Folk Rock kit).

      – a bit more involved is to reduce the bleed in the DRS kit itself. I have not done it, but it is possible. The samples are all multi-channel wav files, so you can load them e.g. with Audacity and set the Audio in the according channel to silence. It is quite a bit of work, but doable.

      – There are tricks to reduce bleed in mixing, but they are often pro-level. You can find quite some videos on Youtube.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *