After a lengthy break from DK421 development I started up again this evening. My primary purpose tonight was to learn how to program my arduino and to learn the basics of serial communication with javax.comm. I wrote a led blinker that also sent some data over the serial connection. 0 when it turned the light on, 1 when it turned it off. and yes, I know that seems backwards.
After a short battle I hacked up the config and a sample program to print my data. It’s not printing the right values, but it is printing the wrong ones consistently. I think it has to do with my function to convert a byte array to an integer. It also has a small runtime exception that I didn’t work out. Regardless, it’s working. I’ll install Eclipse on this machine and maybe get it working even further soon. Next step is to get some piezo’s and learn to read them.
On that front I was thinking about using the velocity of an impact to handle the volume it plays back. Maybe something of a code, like if a strike is registered with a strength of 100 on pin 0 it could send 0_100 or something. Thats in the future though. I am worried about the fact that there are only 6 analog pins though. That means 6 drums without adding another board.
I got my Arduino board today, and I went to check out the IDE. It’s written in Java. Holy freakin’ cow. Couldn’t be more perfect because it’s all written and released under the LGPL! I found the Serial.java in the SVN trunk, and I’m reasonably certain I can figure it out enough to use it. You wouldn’t believe how happy I am right now. I need some breadboard and LED’s.
I’m currently re-thinking the future of DK421. It’s the hardware that has become the hang up. I’m 100% sure that the design I have for the pads is physically impossible. In point of fact, the design is mentally obtuse to begin with. A drum stick just doesn’t hit down with any reasonable amount of force. To think it could be enough to move a not insubstantial amount of plywood any real distance was silly. More so considering I also sought to compress four springs.
Where that leaves me is with a strong desire to use piezo transducers, or some other cheap, microphone-like option, combined with either a micro controller or some relays or something. The hard part is I don’t know any electronics really, I’m just winging it so far.
The vector I’d be most happy with pursuing is using an Ardunio board to read the transducers (voltage? wattage? I dunno…) and when they peak a certain amount, fire off some information over a serial connection. The problems are many for this. One, I don’t have a micro controller, and don’t know how to program and use them. Two, I’ve never done any serial port programming, and am not completely sure if it’s even a viable option for passing the data. Three, I don’t know what to measure on the transducers or how to do so. Four, I think Java might be out of the question with the serial. There is a javax.comm, but I’m not so sure about it.
Regardless, I want to try this way. I’ve wanted to buy a micro controller to play with for a while now, and the Ardunio is open-source and way cheaper than a basic stamp setup. I also kinda want to get me C++ back, and maybe learn how to use QT or GTK. This is either going to be long and fun, or die in shame. Going to buy the board tonight I think.
Looks like the first pad is going to be the kick drum because I’ve misjudged the whole deal. I went to Ace Hardware today and picked up the stuff. I pretty much just guessed on everything. I bought:
- Five 5/16″ Bolts, Approx 3″ long @ 0.19 ea
- Seven 5/16″ Nuts @ 0.07 ea
- Four Springs @ 0.79 ea
- Seven 5/16″ Terminal Rings @ 2.49 total
I guessed well on the length of the bolts, the nuts obviously aren’t a guess, neither are the terminal rings. The springs, however, were not a good guess. It’s surprising how much different a spring feels in your hande versus mounted. The ones I picked are way to stiff, but I think they’ll be okay on the kick, because the beater hits a lot harder. Plus I won’t need to put padding on it to dampen the sound since the beater is some soft material anyways.
The other change in the design I’m making is to get some bolts with flat, threadless areas up at the top of them, about an inch worth. When the top board is pushed down it can catch the threads on it’s return, so that’s kinda iffy.
I also did some browsing today. See, I never actually did any poking around on the net before starting, I just got the idea and started building. It seems that DIY triggers aren’t that hard to find. Most are made of a piezo tansducers and practice pads. Example. I haven’t the slightest if that would work here. I think those are more of a range of current, as opposed to a strict on/off like a keyboard. I fully intend to go buy one after work tommorow and meter it to see if it can handle the job. That would make life much simpler. If not I can just make it into an acoustic guitar pickup.
Here are the required photo’s. The little white box is the home from the keyboard circuit board plus my little “breakout” board. I made that because I couldn’t solder directly onto the contacts, so all the connections are hot-glued and the breakout board is to reduce the amount of wiggling and tugging I do on the board to finish it up.
After some fantastic hardware work I’ve started yet another rewrite of the software for DK421. This time I’m rebuilding it to use more graphical options and let you load new clips without restarting the whole thing. I’ve been learning a bit in my Java class about all this GUI stuff, so I thought I’d apply it.
I’m still hoping someday I can add a save/load functionality to bring in a while sound set. Not the biggest deal at this point, but it would be a nice convenience. I’ve also gotten the first test drum pad cut and am going to buy the other pieces tomorrow. I might have a working pad by tomorrow evening, though my late classes might have something to say about that. I’m tempted to bring my controller to school and work on it between classes. Probably won’t though. Anyway, DK421 is in the early stages of version 0.03 now, I think it’s time to make it a better project page.
P.S. I’ve set the size for this project: 12 Controllers. So that comes out to 1 hi-hat and up to 9 other pads (cymbals, snares, whatever). More than enough for almost any drum kit. I think my first hardware version will be snare, hi-hat, kick, crash, ride. I’ll probably add toms later.