I recently purchased the ION iED05 drum kit, despite having seen a number of reviews that stated that it had no capability outside of the software – and therefore drum samples – supplied with the kit.
As I suspected, that’s not really the case! With a bit of jiggery-pokery, you can make the ION iED05 drum kit, and, I believe, the DrumXtreme DX-100, which appears to be the same kit with a different name, work with any MIDI capable software, which means you can use it with your sequencers, software synthesizers / samplers and notation programs, and assign pretty much any sounds or samples you like. Plus it sounds infinitely better driving pure Sound Font percussion kits, and is more responsive than the original software (which unfortunately has a small but noticeable lag time between striking a pad and playing the sample, which can be disorientating.).
Oh, and you can still play the Virtual DrumX tutorial drum game that is supplied, albeit with your own MIDI drum kits! Whee! (See below for details on that)
I should probably stress before I start that this is strictly a PC/Windows method. I don’t own a Mac, and I don’t know what you’d do to achieve the same on one. Sorry, Mac users! (I don’t even know if you can use the kit on a Mac… certainly no Mac software is supplied. So hopefully I’m not upsetting anyone anyway!)
Also, obviously I haven’t tested it with all MIDI software. Most of my testing was with Cubase, and it works perfectly fine with that. Since we’re exactly emulating the conditions and signals that your true external MIDI instrument would send, it ought to work with any software that lets you specify a MIDI input port.
I also can’t say for sure whether all of these drum kits are similarly calibrated, so it’s possible that to get the optimum performance you may have to tweak a few variables in my script. But don’t worry, it’s well commented and easy to do! More about tweaking later, too!
So, on to the details…
- First, you need a MIDI driver so that you can map the output to your software’s MIDI input. I used the freeware Maple Virtual MIDI Cable. Download and install it, then REBOOT (no, you really do have to. Trust me).
- Second you need GlovePIE, which does all the clever stuffs, and basically translates the input from the drum kit from game controller format to MIDI format. GlovePIE doesn’t even have to be installed – just unpack it and run it.
- Third, you need my script, which tells it what to do. Download this and open it in GlovePIE. Don’t forget to hit ‘run’!
- Fourth, you need some MIDI capable software. I assume if you’re following this at all, you know what you want to use your drum kit with!
All you need to do in your software is match the MIDI IN port that you want to play your drums on to the output from GlovePIE. The default in my script maps to Maple Midi In Port 2. It’s possible your configuration may be different, so you may just have to change the output number in the script to match if you want a different port. At the top of the running GlovePIE script, next to the Run/Stop button, is a debug output which lists the device name it’s outputting to.
So, for example, in Cubase, select, say, track MIDI 01, and change IN : to read ‘Maple Midi In Port 2′. Now, don’t forget to change OUT to something audible… probably the wavetable synth of your sound card. Depending on your software you may have to explicitly set the MIDI channel to 10 to hear percussion sounds.
And that’s about it. Your drums are now liberated from the shackles of cutesy proprietary software and bad sampling! Enjoy!
Tip: If you have a Creative soundcard, and you just want to play the drums (with decent kits and samples!) I find the bundled SoundFont Bank Manager to be perfectly adequate – just fire it up, hit the ‘Drum Kit’ toggle, and select or load your sound font kits.
If you don’t hear anything when you play your drums, you either don’t have your input-outputs connected correctly, or you’re not generating anything audible. As mentioned above, make sure that what appears on the debug line of your running GlovePIE script matches the selected MIDI input for your drum channel.
Many MIDI programs show a meter that will help you. If striking the drum makes the meter register, then your ports are correctly matched, but you probably haven’t specified an output. Your available options will depend on your soundcard, but look for something like ‘Synth A’ or ‘GS Wavetable SW Synth’.
Play the game with MIDI drums!
There’s really nothing wrong with the Virtual DrumX tutor/game software they supply (for the uninitiated, it plays like Guitar Hero… and if you don’t know what that is, crawl out from under your rock and Google it :p).
Happily, you can still play the game, using this method, albeit with MIDI drums. Yay!
All you’ll need is some software running underneath the game that you can have playing the MIDI output. As I said earlier, I have a Creative Sound Blaster, and the bundled SoundFont Bank Manager is perfect for this.
I’ll try and find an equivalent freeware that will do the same thing and update here, because you really don’t want your full blown sequencer running under it just to render MIDI to your soundcard. (If you know of a simple MIDI input > Soundcard MIDI output tool with a tiny footprint that’s preferably free, lemme know!)
All you have to do is mute the audio from the VirtualX software to silence the distinctly average sampled drums, which is on the WAVE audio channel. You can either do this from the advanced volume interface in Windows or from the mixer within Virtual DrumX. The audio for the track is controlled by the CD audio channel, so you can adjust the balance between your MIDI and CD channels to suit.
The script is well commented, so if you need to change anything, it should be fairly simple. For example, at the top of the script is a bunch of offset variables that are used to counter the fact it’s VERY difficult to calibrate your drum kit as a game controller in Windows! If your drums are too loud when you hit them softly, and therefore don’t have much of a velocity range, add a negative value to the appropriate drum, or vice versa.
Tip: Though it’s certainly not easy, you actually can calibrate your drum kit in Windows for better response. Open Control Panel > Game Controllers and select your Drum Kit from the list, then open ‘Properties’. Go to the Settings tab and click ‘Calibrate’. Now just do your best… it’s not going to be easy to do everything it says in order, but what you can do is redo the cailbration over and over, because it seems to only add to the profile, not overwrite it. So using the table at the bottom of this page as a reference, comparing with the responses on the Test tab of the controller properties, you CAN calibrate it. For example, when it says to move your joystick on the x axis, hit the red drum a few times in a range from soft to very hard. Just do your best. I found that some calibration is better than no calibration – mainly for the velocity ranges.
The Technical Stuff!
For those interested in tweaking the script or taking the concept further, or if you’re just plain curious as to how it all works, here’s some info on the script and method.
By all means, if you think you can improve on the script, and I’m sure there’s ways to improve it, then please do. Just a) gimme some credit, and b) lemme know!
I’m sure the velocities could be refined, but basically, my math sucks.
First, though GlovePIE allows you to explicitly call a drum sound and automatically transmits it to channel10 (MIDI percussion channel), you can’t set a velocity on those sounds in the same way as you can for a note, so each drum is mapped to the equivalent note instead.
|Cymbal Mute||7||not working at present!
(I can’t find a way to mute
the playing sound)
This seems to work satisfactorily for most GM Drum kits. If you find you would prefer another sound generically; for example, you want to globally remap the purple drum to always play CrashCymbal2, then near the bottom of the script you could change the note that is being referenced in the output line (midi.CSharp4Velocity = var.PurpleDrum%).
As far as velocities go, the drum kit uses various axes… axisis… axises…. uh… the drum kit makes use of various inputs from the joystick, as follows:
|GlovePIE / game controller mapping|
|Left Pedal||10||* see below|
|Right Pedal||9||* see below|
* The Left and Right Pedals don’t seem to have a velocity input… despite being a pedal, it appears to behave as a simple button.
Having played around with this configuration for some hours now, I have found a couple of things that may or may not be of use to know.
Personally, I find the bass pedal to be a bit twitchy, sometimes producing a double hit. To combat this, I just changed the wait command for the right pedal to about double the global var.WaitTime, which seemed to stop the double kick, but still respond quick enough for fast beats. Your mileage may vary.
I, uh, don’t know what else you might need to know. So I’ll leave it there.