This instructable is going to be
about building an electronic drumset(not a MIDI sampler.),using an Arduino UNO R3.,
similar to a V-DRUM.It is code named KIDU.
(Kompact Intelligent  Drumming Unit).Some of the items used may be names differently in your locality.ill try to put as
many pictures as posible.
I saw many instructables based on arduino and MIDI outputs.i thought of
making a completely independent instrument(ie with out a laptop).

   (unlike V DRUM);
* Very portable and easy to assemble.
   (the whole structure fits in a guitar case :-))

* The user can decide which sound each
   drum sounds like.One can even record
    a sound and upload it into the device
    and make that sound from a drum.
    (sound quality-16 MHz,16 bit mono)
* You can use as much storage space for saving the sound files.,
   depending on the size of the SD card you use.
   So a lot of sound styles can be included.For the sake of simplicity .,i used
   5 styles of sound.

* There is no base-drum. Instead the kick pedal
   contains a trigger.,that simulates a base kick.

* Total cost just a fraction of what the original
    V DRUM will cost.I made it under 6000 rupees(~ $107).

* There are no unnecessary buttons and knobs for selecting the drum styles.
   I have programmed it in such a way that.,
   The drums themselves acts as the buttons.in this example.,i have used the snare
   drum to trigger the count,.and the tom1 drum as the select key.
* There is no LCD display to guide you through selecting the drum style and the tones.
  but KIDU will narrate every step.,and what style you have selected.
  For example.,When  KIDU startsup.,it asks you to enter the style count
  using the snare drum.Then you hit the snare drum with the drum stick
  less than 5 times,to select a drumming style,numbered from 1-5.

General Advantages :
  (unlike acoustic drums)
*KIDU can play a large number of percussion styles.,depending on the
sounds that you have saved in it.

*You can directly record the audio output.,on to any device that can
  record an audio signal,with out any ambient noise.for an acustic drum
  you may need a studio to record it ambient free.

*You can practice it with out disturbing anyone.,by simply connecting
  a 3.3mm headphone jack into the output socket.

*You can individually adjust the sensitivity of each of the drums through
  program or a control knob.FSOS(for the sake of simplicity)i have excluded
  the pots.I control their sensitivity by adjusting the threshold value in the program
  prior to upload.

Step 1: Stuff Needed


# Arduino UNO R3
# SD card shield
# USB cable
# 5 V adaptor
# Micro SD card
# Piezo electric transducer(aka piezo disk)
# ribbon wire
# single core shield wire.
# Hook-up Wire.
# Parallel PCB.
# 2 contact jumpers.
# 3.5mm audio jack (male n female)
# Resistors- 1M & 10K (around 10 each)


# PVC PIPE(3.5cm and desired thickness) - 3 meters
# PVC T-junctions
# Thermocoal(real thick).
# Rubber like material(honestly dont kno its fancy name.:)
   any material which gives sum rigidity and bounce.i bounght it from a
    footwear manufacturing place.they use it for making the shoes soul. )
# Rexin(this material will be the artificial membrane.i used a black cloth
   like material.u can use anything to make it look cool.u can even use leather
   .it wont affect the way your drum sounds.)

# sumthing that looks cool..,to put your circuitary in.(i used an old laptop
   cooler-pad.lot f room inside n looks awesome.)


# Soldering equipments.
# Cutting plier
# Wire Stripper
# Sissors (heavy duty thing)
# Thermocol cutter
# Hack saw
# Measureing instrament.
# Fevicol SR & SH(indian manufacturer for glue used for working with
                  wood and footwear industry.u can use what ever is used
                   for the same in your country :P )
# Insulation tape.
# Ducttape or cello tape or masking tape.
# sand paper(of variying grain size for metals.)
# M-seal(a material that can be molded in to any size and sticks)
# Spray paint.(Your choise.i used black.)



# Arduino programming environment.
# SOX (command line format converter)
# FL Studio.


# A PC to program the Arduino.
# An amplifier to Hear the sound.
I googled my problem and found this<br><br>Connect SD card to your Arduino board (using shield or whatever, SD card's chip select should go to pin 4, all other to SPI pins).<br><br>Connect a speaker or headphone via 100 ohm resistor in series to audio output pin (pin 9 on Arduinos with ATmega328, pin 44 on Arduinos with ATmega1280/2560). Connect other end of speaker to GND.<br><br>I was simply getting confused by the TMRpcm.h library. That has different functions.:(
<p>Please tell which pin for audio output!!! Quick please!!!</p>
<p>I think he answered somewhere below:</p><p>&quot;Pin 9 for uno and 53 for mega&quot;</p>
<p>Hmm... but what 'bout an Amplifier with the big lead. (the one which we connect to guitars)</p>
<p>And that's where the enable (CS or SCK) of the SD Card Reader goes!!!</p>
after reading all, i still trting to find what pin to use for audio output.
<p>EXACTLY! Me too!</p>
just updated the instructable with the links for the files that you may need,.
<p>would u give me the updated link please</p>
I amazed by your great project , i just need the diagram of connection between arduino mega and the sd reader , and if it's possible to adjust velocity So when i trigger in low velocity the file play in low volume and so on ?<br>
<p>And what shield would be recommended for Arduino Mega? </p>
<p>If I am using a Guitar Amp, then on an Arduino Mega, I should connect the positive of the amp lead to pin 53 and negative to ground? The sound shall then come?</p>
<p>could a similar project be done with 1sheeld over bluetooth and piezo sensors and sound files in the sd card of phone ? <br>Using a phone would also give us a screen and so much more...</p><p>i am very new to arduino </p>
<p>can you use a guitar hero drum kit as the frame</p>
<p>can i build it with no wave shield and with just one sample into arduino's memory? i have a sample with 15kb 16bit and 16mhz or a converted sample w 6kb 8bit 24mhz</p>
Yes, its possible. There is an ardhino library for it. You need to encode the audio sample into PCM format and store it the arduino memory. And use the library toplay it. I think the library s name was PCM . I must say that the audio quality was very bad. I dont think the PCM library could play an audio sample above a particular quality. And the tempo and pitch were all wrong too. The arduino memory is another huge constrain . I could use only an audio clip which is about 2 seconds long on arduino uno. Bottom line is it works . but i couldnt get thr required quality or number of clips out of it. If you try it out, do let us know how it worked for you.
<p>Cool instructible Jishnu. Just thinking that you could add velocity sensing buy watching the peak amplitude of the trigger inputs then adjusting the output amplitude accordingly.</p>
<p>Oh, yes That did cross my mind, I Don't know if the library I use supports real time amplitude adjustment . But I could store sound samples with different amplitudes and play them with respect to the trigger peak amplitude. I also thought of doing that to get different sounds when I hit different parts of the drum by using 2 piezos in 1 drum and different sounds for different piezo value combinations. I also though of doing amplitude adjustment with a digital potentiometer connected to the output of the sound out and adjusting that value in accordance to the peak amplitude value. I don't know if any of thee will even work. And I am so busy with the job and other stuff that I cant even try out any of these. :( Thanks for the Suggestion though... :)</p>
<p>Hi Jishnu, nice instructible, have just one question: you have any delay to play the sounds??? thx (sorry my english, im Brazilian)</p>
<p>Nope, No delay. But if a drum hit is sensed before the other sound is over, the new sound over rides the previous one. So the first one sounds incomplete. This happens only if the drummer is very fast. or hits 2 drums at the same time.</p>
<p>Any further progress on creating a code that could allow multiple sounds to play at once? I'm really interested in making one of these for my Nephew to learn drums, but it would be good for him to have multiple tones at once to learn properly.</p>
I am sorry., but the library doesn't support that. And also I don't think that is doable with the limited muscle we have on the arduino. The samples need to be synthesized to do what you ask. I am no expert but I don't think we can do that on arduino. Here we just play from the stored audio file. I think it would need an FPGA.
<p>from which pin of arduino do you take the output?</p>
Pin 9 for uno and 53 for mega
<p>Hey Bro I Am Parnab I am 13 yrs old i want to ask u that can u build it with 2 drums,3 tom toms and 3 cymbals so i can pratice my drum lessons at home</p>
Hey pranab, that is possible but I wouldn't recommend this for practice. This is only ment as a learning exercise for those interested in electronics. To learn drumming as a soft skill I think you should practice on a real drum
Hellou this is amazing...! I want to make this but . Cant find scheme or how to connect output tu guitar amp or any amp or i missted somhwere.. :) can you help somhow..? This is so cool! Thank you!!
Sort about not having any schematic. The audio out is connected between pin 9 and gnd
<p>Hey Bro, would it be possible to replace the SD card with a device say a tablet and have the Arduino read the SD that is in the Tablet?</p>
Definitely possible. I am not good at android coding. But there probably will be some library in android for serial communication. We can code the arduino to send the the sensor readings to the android device via USB Serial or Bluetooth or some thing and take the output from the android device. The output will be even clearer than that is now. But I can't cant say anything about the fidility since there might be considerable delay. If you are relying on an android device then I suggest you try making a midi kit. There are tutorials that will help you with it. Its much more easier too. And just use a VST program like flstudio or something that runs in android. Cheers.<br>
<p>i'm sorry mr, may i have the schematic or wiring diagram. thx so much</p>
<p>Hey thanks for replying. I was wondering what the connections would look like if I had the arduino connected to the shield and placed all the things on a breadboard instead. So I have the piezos and the resistors and one female audio jack on the bread board. Would I be able to get a proper sound using your source code?</p>
<p>Hey sorry i couldnt reply sooner., a while ago someone did this on a breadboard when and it worked just fine.It sounded fine..Here is the link to his work.<a href="https://www.facebook.com/video.php?v=799332390107231&pnref=story" rel="nofollow">https://www.facebook.com/video.php?v=7993323901072...</a></p>
<p>Hey thanks! I also got it to work and transferred it over to a pcb. Thanks anyway though.</p>
<p>Hello, we were there at the KCSTE event when you presented this. Do you feed the PWM signal directly to the speaker or do you smooth it with an RC circuit. What values did you use?</p>
<p>Hey Sreedev,Glad to see you again., We need a Lowpass filter to smoothen out the PWM Signal. But i had an amplifier with an equalizer to Do that. So i had only to decrease all treble (the HIGH freq component )and increase the Bass(The low freq component ). This way i had more control over the output signal. but after a little experimentation, i did a small passive Lowpass filter with some capacitors and resistors and got a much better result, So i would strongly recommend using a LOWpass filter with a cutoff close to the fundamental frequency of the PWM signal of the Arduino.</p>
<p>Hi great project, this is what i am looking for along time , o wonder if its possible to ad more pads and hi hat pedal , </p><p>sorry i am just beginning to learn about arduino </p><p>my idea its make my one drum module or use arduino to receive midi notes and transform to audio output.</p><p>thanks </p>
<p>Hi.., Your idea is totally doable.In fact there are a lot of instructable to get the midi out from the arduino. check this out <a href="https://www.instructables.com/id/Arduino-Xylophone/" rel="nofollow">https://www.instructables.com/id/Arduino-Xylophone/</a></p><p>With a little research you can make a hybrid of KIDU and this MIDI xylophone.</p>
<p>Hey are you still checking these comments for this project? I have a couple questions if you wouldn't mind. Thanks!</p>
Sure whats up..?
<p>Hey thanks for replying. I was wondering what the connections would look like if I had the arduino connected to the shield and placed all the things on a breadboard instead. So I have the piezos and the resistors and one female audio jack on the bread board. Would I be able to get a proper sound using your source code?</p>
can i hit 2 pad at the same time :3 im just curious
<p>technically no. the latest hit will over write the previous sound. but i made my drumsounds so small in size and duration that one hardly notice that.I am currently working ona drum that can play 4 sounds simultaniously..</p>
<p>Any progress on the polyphonic drums? :)</p>
<p>is this a stand alone unit or do you need to hook it up to a computer? also is the schematic available?</p>
<p>Yes,it is a stand alone unit</p>
<p>Hello enjoyneer, Thanks for this instructable and congratulations, it is great.</p><p>I have a question. Is there any noticeable delay from the moment you hit a pad until you expect to hear its result?</p><p>Thanks in advance!</p>
Hello..thank you too.there is no delay at all.I was quite surprised by the response time it had.i reason was that the audio format is raw,which the arduino is capable of decoding quite well on its own.If it were some onther format like mp3 or wav then maybe there would have been some delay from the dedicated decoder hardware that may be required.but still.,at 16MHz clock speed i doubt even that.In this case the rendering is quite robust.the only problem that you may face is that if you hit two pads at once then,only that first soundwill be heard.because the sound files are fetched from the sdcard via the SPI protocol.which can only fetch 1 file at a time.but still you would barely notice it.i could not notice it.but in theory there is such a possibility.
<p>I dont think you can do that with todays keyboards. i am not sure of the thing.What people usually do is that they connect the electric drum to a computer via a MIDI interface and use a VST like flstudio or cubase or logic or garageband to make any sound on the VST to play on the drum.The keyboard itself is a MIDI device.i am not sure if you can connect another MIDI into it.I am not sure you may want to do some additional research on this. </p>
<p>using piezo electric drum pad how to connect to organ keyboard to use its drum sound source</p>

About This Instructable




More by enjoyneer:HOW TO MAKE AN ELECTRONIC DRUM.(not a MIDI sampler)   aka  KIDU 
Add instructable to: