this space intentionally left blank

November 16, 2005

Filed under: gaming»hardware»control

DrumPad update

I'm still working, off and on, with getting my gamepad drumkit running. The Pelican has been ditched for an outlandish Spider-man pad ($20 and more reliable) which you can barely see in my last studio shot. It's ugly, but it works, and it matches the new bass.

Here's the point: before I was interrupted by the new job and a host of other priorities, I had built the basic skeleton of the drum machine in Excel using Visual Basic for Applications. I did this for three reasons: Excel has a warm place in my heart as a prototyping framework, VBA is quick and easy, and it's a reasonably portable build without resorting to Java--I'm convinced that Java is a language designed by spiteful CS professors just to annoy me.

However, I'm running into two problems and a possible solution. The first problem is latency, which may be due to the ControlMK application, because I didn't seem to have any problems with it when I just used the keyboard to play the kit. I can handle a slight delay in the controls, but too much and my drummer will sound permanently drunk. Realistic? Perhaps. But too frustrating for the audience member using the pad.

Second, VBA--and possibly Visual Basic, period--doesn't have an easy way to mix non-blocking sounds. The kit plays fine from the keyboard, but only one sound can be heard at a time. I need at least two sounds at once (kick and snare, for instance), and optimally three (both "hands" and a "foot").

Now, the possible solution is that I do have a free copy of Visual Basic.net, ordered through some twisted Microsoft promotion. Once it's installed, and I work out all the kinks with my laptop and the .net VM, I could have a real programming environment instead of just a handy scripting language. But I'm guessing I still need a library that will handle joystick input and sound output to conquer my problems.

Let's make something clear: I really don't want to learn how to open and lock displays, or initialize subsystems, or do my own mixing. I haven't done hardcore programming in a long time (nor do I want to), and when I did it was mainly clever greyscale hacks. Surely there's something out there that can do the heavy lifting for a simple task like triggering .wav files, right? Any suggestions?

Future - Present - Past