Arduino Minimal Drum Kit

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

instructables

Arduino Minimal Drum Kit

by Ryo Kosaka

Hi. 1.Pad made with a 3d printer and thick paper.

This is minimal drum kit using arduino UNO. 2.Trigger midi converter with arduino UNO .

First of all, please check this instructables page. The signal sent from the pad of " 1 " is processed by
arduino of " 2 " and converted into MIDI signal. And
E-drum With Small 3D Printer and Thick Paper the MIDI signal is transmitted from arduino to iPhone,
laptop, etc, and sound comes out.
Since I started making this, I was captivated by piezo
and electronic drums. Let's make it!

I was fascinated by a very simple mechanism of I apologize in advance that English is not my first
electronic drums and the great invention called MIDI. language

In other words, I could not be satisfied just by making


pads.

This drum kit is roughly divided into two productions.

1. arduino UNO inside


2. KORG Gadget Le / iPhone 6

https://www.youtube.com/watch?v=cDVI-QIp1Nc

Arduino Minimal Drum Kit: Page 1


1 1

1. You do not need to prepare a power supply other than a smartphone


1. You do not need to prepare a power supply other than a smartphone

Step 1: What You'll Need

Arduino Minimal Drum Kit: Page 2


Tools Pipe Cutter

3D Printer driver drill

Laser Cutter (Extra) drill bit 9mm / 10mm

hex wrench

cutter knife
Material
circle cutter
1mm thick paper
Soldering Iron

PLA filament

Sponge Foam Sheets 5mm / 10mm


Drum Hardware
MDF 2.5mm / 5.5mm (Extra)
Mesh head 10 inch / 8 inch
M6 - 70mm bolt and nuts
Snare stand (Anything is OK. I am using YAMAHA
M6 - 50mm bolt and nuts SS662.)

M3 - 10mm bolt and nuts Hi-hat stand (Anything is OK. I am using YAMAHA
HS650A)
M3 - 15mm bolt and nuts
Kick pedal (Anything is OK. I am using YAMAHA
M3 - 25mm bolt and nuts FP7210A)

M2 screw Drum stick

6.3 mm Stereo Cable etc..

6.3 mm TRS sockets (like this) much time

13 mm diameter Stainless steel pipe USB cable

Lightning to USB Camera Adapter

Circuit

Piezo

FSR

Cable

Solder
Arduino Minimal Drum Kit: Page 3
Universal board

1M resistor

10 k resistor

5.1V zener diode

Tact switch

16 x 2 LCD (I do not use this same thing, but this will


be fine.)

1. circle cutter

Arduino Minimal Drum Kit: Page 4


Step 2: 3D Printing

All data is on Thingiverse and GitHub.

Please use Ver.2 for the rim.

I printed parts with infill at 20%. The thickness of the layer is 0.3 mm.

If you can use a laser cutter, check step 3.

Step 3: Laser Cutting (Extra)

Of course, few people own laser cutters individually. Please use MDF of 5.5 mm. It is designed to have the
same dimensions as those made with a 3D printer.
If you can freely use laser cutters from universities
and companies, use this vector data. So it is also possible to attach mount parts or to make
it a kick pad.
Vector Data :
https://github.com/RyoKosaka/drums/tree/master/vect There is also a way to use a laser cutter in FabLab or
or TechShop.

Arduino Minimal Drum Kit: Page 5


Arduino Minimal Drum Kit: Page 6
Step 4: Assembling Parts

Use M3-10mm bolts and nuts to connect the parts together.

Use the M3-15 mm or M3-25 mm bolts for the center part to fix the bottom part to each other.

Arduino Minimal Drum Kit: Page 7


Step 5: Making Shell

Since the design has hardly changed, I want you to You can use butterfly nuts, but I also made tuning
see the above mentioned article for detailed keys that can be tightened even with ordinary nuts, so
explanation. please use it by all means.

*** NOTICE *** In these photo, shell height is 40 For fixing the mesh head, use M6-70 mm bolts.
mm. but you make shell height 55 mm.
Once you've made a hole, remove the mesh head
Do not forget to make the height of the shell 55 mm. again to put a piezo

When the shell dries, with the mesh head fixed, make
a hole of 9 mm in diameter for the socket.

Arduino Minimal Drum Kit: Page 8


Arduino Minimal Drum Kit: Page 9
Step 6: Sponge Foam Sheets

Selection of materials is very important. For trigger cones the best choice is to buy already
molded ones. I decided to make it because I can not
I used a sponge sheet made from 10 mm thick and 5 get it in my country, Japan.
mm thick natural rubber.
I just bought it in the neighborhood DIY store, so I It is not good if it is too hard or too soft. I am trying on
doubt if this is the best. various materials.

Arduino Minimal Drum Kit: Page 10


Step 7: Attaching Piezo

SNARE Since the kick pad uses only one piezo, only tip can
be used.
In the case of a snare, use two piezo as shown in the
picture. No sensor plate is required.Two sponge foams under
the piezo
Connect piezo's red cable to each of tip and ring.
Place the sensor offset from the center.
Both black cables connect to sleeve.
It is because arduino can not judge the strength of hit
Do not forget to thread the cables through the holes in if beater hits sensor directly.
the sensor plate when soldering.
HI-HAT
Piezo for the head (piezo connected to tip) needs to
be sandwiched with 10 mm thick sponge foam as The circuit is the same as the kick pad.
shown in the picture.
Put a piece of 10 mm thick sponge foam under the
One below, three on the top. And make the top 3 piezo.
cones like the picture.

Then put it on the sensor plate.

KICK Piezo is delicate. Be careful not to bend or hurt.

Arduino Minimal Drum Kit: Page 11


Step 8: Snare Pad

First attach the sensor for the rim.

Fix the sensor plate. Firmly fix it. Make the end of the cone visible 2-3 mm when viewed from the side.

Of course, the same procedure is also used when using an 8-inch pad as a snare.

Arduino Minimal Drum Kit: Page 12


Arduino Minimal Drum Kit: Page 13
1

1. 8 inch snare pad

Step 9: 8 Inch Kick Pad

First, cut a 13 mm diameter stainless steel pipe.

Make two 200 mm and two 365 mm.

Since the length can be adjusted, even if there is some error in the length, it is OK.

Assemble them with reference to pictures.

In order to fix the pipe, it is designed so that the M3 nut can be loaded inside the part.

Fix the pipe securely. Use M3-15 mm bolts and nuts.

Arduino Minimal Drum Kit: Page 14


Arduino Minimal Drum Kit: Page 15
Step 10: Tom Mount (Extra)

Since I am planning to make a full set, I also First, measure the diameter of the pole where you
designed a tom mount. want to install the part. It would be good to print parts
that are about 2 mm larger than its diameter and then
With this, you can use it with an actual drum. tighten the bolts after sandwiching the plastic plate
like a photo in the gap.
Mount on the pole, but the diameter of the pole is
different depending on the company. So, I prepared a
model every 1 mm from 15 mm to 25 mm.

https://www.youtube.com/watch?v=6k6vkDfpSu8

Arduino Minimal Drum Kit: Page 16


Arduino Minimal Drum Kit: Page 17
Step 11: 12 Inch Hi-Hat

After producing the shell with thick paper, I thought Apply adhesive and overlay these.Do not forget to
that if you use thick paper I can make cymbals. extend the adhesive cleanly and thinly

First. Cut thick paper into a circle with a diameter of Hold firmly with your hands, then place the weight
300 mm. Make three of this. around and dry.

Next, make a notch from the center. For silencing, put a 5 mm thick sponge and drill a
hole. You can not open the hole neatly, but you can
Finally, a second notch is made from the point 10 mm hide the hole so it's okay.
apart parallel from the first notch.
Complete by attaching sensor mount and cable guide
In this way, three pac-mans with a small mouth with double-sided tape. It might be easier if you use
opened are made. glue gun.

Then close the Pac Man's mouth carefully with tape


to make it into a cymbal shape.

Arduino Minimal Drum Kit: Page 18


1

1. 10 mm 1. 10 mm

1. 10 mm

Arduino Minimal Drum Kit: Page 19


Arduino Minimal Drum Kit: Page 20
Step 12: Hi-Hat Controller

Hi-Hat Controller sends the opening and closing of Even though it's only HIGH and LOW, you may
the hi-hat to arduino. wonder why I used FSR.

The circuit is very simple. I use FSR to correspond to sound modules such as
Roland and Yamaha.
It is made by combining three parts.
And in the sound source exclusive for drums such as
Attach the FSR to the bottom part and fix the socket. EZ DRUMMER 2, there are several stages in the
FSR can be used even if a hole is opened. degree of opening of the hi-hat.

Attach a 10 mm sponge to the FSR like a photo. If it is FSR, it may be possible to respond by just
modifying the code. However, I have not tried it.
Fix the cover with M3 - 10 mm bolts.

Arduino Minimal Drum Kit: Page 21


Arduino Minimal Drum Kit: Page 22
Arduino Minimal Drum Kit: Page 23
Step 13: Play With Roland's Sound Module (Extra)

It is the easiest way to complete your own e-drum. Or you can use trigger to MIDI converter.(Roland
TMC-6 or Alesis Trigger iO)
If you have a sound module, just connect it.
Do you want to make it yourself? Let's go to the next
Even if you do not have one, you can get it second step.
hand. I tried using Roland's TD-10. That's great.

https://www.youtube.com/watch?v=8JTfHaHsme8

Arduino Minimal Drum Kit: Page 24


Step 14: USB - MIDI

What can we do in this step? to Downloads.

With usb cable alone, you can send midi signal from Next,Please proceed according to this site until the
arduino. description below.

In other words, make arduino be recognized by [ sudo dfu-programmer atmega16u2 flash Arduino-
iPhone etc. as a midi device without any additional usbserial-uno.hex ]
hardware.
Just replace "Arduino-usbserial-uno.hex" with
First of all, check this page. "dualMoco.hex".

http://morecatlab.akiba.coocan.jp/lab/index.php/aruin Therefore,
o/midi-firmware-for-arduino-uno-moco/
[ sudo dfu-programmer atmega16u2 flash
https://github.com/kuwatay/mocolufa dualMoco.hex ]

If you connect normal arduino UNO directly to After rewriting, your Arduino will be recognized as a
iPhone, you will get an error message like "Arduino MIDI device.
UNO is not compatible".
If you short-circuit the pin as shown in the picture, it
So, you have to rewrite the USB chip (ATmega16U2) will be recognized as normal Arduino.
used in arduino UNO.
If not (when not short-circuited), arduino UNO will be
https://www.arduino.cc/en/Hacking/DFUProgramming recognized as a MIDI device.
8U2
In other words, when writing code using the arduino
This instruction is how to rewrite the hex file. IDE, you have to short-circuit the pins as shown in
the picture.
First, Download "dualMoco.hex" in your PC and move

Arduino Minimal Drum Kit: Page 25


Download
http://www.instructables.com/ORIG/FZ9/RC8F/JA8JNDUE/FZ9RC8FJA8JNDUE.hex

Step 15: Using Hairless MIDI

If you think that the previous step is difficult, please try Hairless MIDI.

I wrote how to use it on my blog so please refer to it.

https://open-e-drums.tumblr.com/post/171304647319/using-hairless-midi

Step 16: Arduino Trigger MIDI Converter

There is arduino UNO and shield in the box. After printing the model of the case and the cover
first, it is good to make the shield according to it.
Refer to the image of fritzing for the circuit of the
shield. There is also a 3D model of the cover, but I made a
cover with a laser cutter. Please choose whichever
Diodes are for protection but I saw the information you like. It would be good to put paper on the 3D
that arduino UNO has protection circuit, diodes may printed cover.
not be necessary. Does anyone know about this?
Please see Step 10 for mounting on the pole and
Place the tact switch and toggle switch on a separate parts for it.
universal board. The size is "".

Arduino Minimal Drum Kit: Page 26


Arduino Minimal Drum Kit: Page 27
Arduino Minimal Drum Kit: Page 28
Download
http://www.instructables.com/ORIG/F83/HB8I/J4IPWK7V/F83HB8IJ4IPWK7V.fzz

Step 17: Code

You can check the code on GitHub or Arduino Create I am a beginner in programming. This code can be
improved further.
This code uses MIDI library and Liquid Crystal library.

Download
http://www.instructables.com/ORIG/FQG/JK3H/J4G585YZ/FQGJK3HJ4G585YZ.ino

Arduino Minimal Drum Kit: Page 29


Step 18: Setting

In making the code, it was troublesome to rewrite the FLAG


code each time the value changed, so I wanted to be
able to change the value with arduino alone. A value for judging that the beating is over. You do
not have to change it too much. It would be nice to
In other words, this is made for debugging code, so set the value from 1 to 10. If you raise the value too
there are items that do not need to be changed. much, you will get a sound twice with a single hit. If
you lower it too much, you may get out of sound
Nevertheless, setting is necessary depending on the when you hit repeatedly.
size of the piezo, the size of the pad, the hardness of
the sponge foam. SCAN TIME

Select an instrument with the inc / dec button and In searching for peaks, values are taken
select the setting item with the next / back button. consecutively for several milliseconds after exceeding
When the EDIT button is pressed while the the threshold. The highest value among them will
instruments and items you want to set are displayed, peak. This several milliseconds is SCANTIME. There
you can change the value with the INC / DEC button. is no need to change it.
Then, pressing the EDIT button again confirms the
change. HEAD / RIM

If you watch at the latter part of the video you will Set the ease of the rim. Raising it makes it difficult to
understand how to operate. sound. If you lower it too hard the rim will sound when
you hit the head. Regarding the judgment of the head
THRESHOLD and the rim, it may be necessary to improve the code

PEDAL VELO
The lowest value at which sound comes out
Unlike other pads, the velocity of the pedal is
SENSITIVITY constant. The initial value is 100. Please change to
your favorite value.
Sensor sensitivity. If you lower it, you will gain high
velocity even if you hit softly. MASK TIME

NOTE This is a value related to FLAG. There is no need to


change it. If you raise it, you may not hear a sound
when you hit continuously.
Number of the note. By changing, you can change
instruments. Please refer to the image.

Arduino Minimal Drum Kit: Page 30


https://www.youtube.com/watch?v=B5joqfuxYTQ

Step 19: Play With GrageBand

Just start garageband and connect. There is no particularly difficult setting.

I started making it to start drums. So please forgive my poor performance.

https://www.youtube.com/watch?v=cDVI-QIp1Nc

Arduino Minimal Drum Kit: Page 31


Step 20: Play With KORG Gadget Le

Korg Gadget has a drum machine in it. You can play just by connecting the same as garageband, but the note
number is different.

There are 8 pads, assigned to those pads from 36 to 43 from the left.

You only need to edit the note number.

1 3 4 2

1. note : 36
2. note : 43
3. 37
4. 42

Step 21: Play With PC

There are a number of DAWs for PCs that can be used on this drum set, including GarageBand.

Among them, Hydrogen is free and you can add sound.

Especially difficult setting is unnecessary. Please connect in the same way as iPhone.

Step 22: Reference

A lot of information was very useful when making this drum set. Here, I will introduce them.

https://www.youtube.com/watch?v=z-ROTzYW0A0

https://www.youtube.com/watch?v=vQ9rhX51P9M

Arduino Minimal Drum Kit: Page 32


https://www.youtube.com/watch?v=vi-w_WqJjzQ

https://www.youtube.com/watch?v=Byq9zh9g7aM

https://www.youtube.com/watch?v=kgRkO_zj30g

Step 23: Fusion 360 (Extra)

Some parts may not be usable unless their dimensions are changed. It is difficult to edit STL data. So I uploaded
fusion 360 data. However, since I am editing data while trial and error, it is better not to depend too much on the
history function.

https://github.com/RyoKosaka/drums/tree/master/Fusion360

Step 24: Processing (Extra)

I just tried making it experimentally. Unfortunately, we can not actually export 3D models
using this ...
I made it by Processing thinking that it would be fun if
I could change the pad split position freely and export It's just an experiment. Try playing.
it with STL.
You need a peasy library and controlP5 library
It would be fun if a 3D model was created simply by
entering the size of the pad you want and the 3D
printer you own.

https://www.youtube.com/watch?v=-R5oYCIH67s

Arduino Minimal Drum Kit: Page 33


http://www.instructables.com/ORIG/F9K/JET7/J4IPX41M/F9KJET7J4IPX41M.zip
… Download

Step 25: Thank You for Reading.

There is still room for improvement. I decided to share I am sorry it has become a very long instruction.
it because I am over the hump with this production. Thank you so much for reading to the end.

Surely, you think that this kit has too few pads. Thank you so much, Arduino!

Do not worry. Using arduino MEGA you can make Thank you so much, RepRap!
exactly the same thing. If you just add more pads it
will not be a big deal.Since analog pins are more than Thank you so much, Roland and KORG and
doubled, a fine drum set will be completed. YAMAHA!

I am planning to make it, but I just started working. I Thank you so much, Ikutaro Kakehashi!
will add pictures and codes when done.
Please feel free to ask anything.
Detailed production process is published on this blog.
Check it if you are interested. Have fun!!!!!!

Step 26: Arduino Library

I created a library for Arduino.

Since it is still in beta, there may be bugs, but you can use it.

https://github.com/RyoKosaka/HelloDrum-arduino-Library

Arduino Minimal Drum Kit: Page 34


Hi Ryo, i'm very new to Arduino... like 1 week new -_-' You're project is one of the main things i
would like to give it a try. For the moment i got one question, the process of using the
"dualMoco.hex" hack is reversible? if so, how can i do it? because of what i understand once you
do it, your Arduino stays like an USB device? i know that in your project you can back temporary to
the Standard mode? thanks in advance, greetings from México.

great job! Thank you so much

Olá Ryo Kosaka...


Gostei muito da idéia, e fiz 2 Drum pad com 6 sensores cada.
mas deu conflito quando uso os 2 Arduino Uno, conectados no mesmo PC... Eles falham!
E mesmo sendo 1 só ligado no PC, ele demora reconhecer o MIDI.. é preciso desconectar e
reconectar umas 10x ou mais.

E o Display ficou meio maluco também.

Tem idéia de como resolver isso?


Teria como mudar os nome dos módulos ( MOCOlufa ) e colocar outro nome.

425/5000
Hello Ryo Kosaka ...
I really liked the idea, and I made 2 Drum pads with 6 sensors each.
but it did conflict when I use the 2 Arduino Uno, connected on the same PC ... They fail!
And even though 1 is only connected to the PC, it takes time to recognize MIDI .. you need to
disconnect and reconnect 10x or more.

And the Display was kind of crazy, too.

Any idea how to solve this?


I would like to change the module names (MOCOlufa) and put another name.

Hi! in your laser cutting model, there is no front rim bass drum (

Hi, the bass drum rim is the same dimensions as the 8 inch pad rim.

I already understood it, but not immediately ... after the order of plywood cutting. I think it's worth
adding this ring to the bass pad file

Yes. Certainly you are right.


I have updated the data now.

anyway you did a great job for all people on planet! i'm glad that such good people exist .
successes to you in everything

Arduino Minimal Drum Kit: Page 35


Hi Sir,
Do you finished the upgraded drum kit with arduino mega?
Please advised. Thanks.

If you do not use the LCD and you only use one piezo on the pad, it's easy.Just copy the part of
KICK in this code 443-
476(https://github.com/RyoKosaka/drums/blob/master/arduino/HELLODRUM/HELLODRUM.ino)
and change the name and increase it.And you also have to increase the constants related to KICK
like this.
ex.
int KICK[6] = {200, 700, 36, 1, 0, 0};
¯copy&paste&rename
int TOM[6] = {200, 700, 36, 1, 0, 0};
boolean kickFlag = false;
¯
boolean tomFlag = false;
int piezoValue_3 = analogRead(A3); //kick drum
¯
int piezoValue_10 = analogRead(A10);
Regarding the circuit diagram, replace the UNO of this
image(https://github.com/RyoKosaka/drums/blob/master/circuit/circuit.png )with MEGA and add
piezo to the analog pin.

Hi Sir,
Can I delete this code?
Cause I dont have to use LCD for my project.
void loop() {
/////////////////////////////////// CIRCUIT ///////////////////////////////////////
int button_set = digitalRead(6);
int button_up = digitalRead(7);
int button_down = digitalRead(8);
int button_next = digitalRead(9);
int button_back = digitalRead(10);
int piezoValue_0 = analogRead(A0); //snare head
int piezoValue_1 = analogRead(A1); //snare rim
int piezoValue_2 = analogRead(A2); //hi-hat
int piezoValue_3 = analogRead(A3); //kick drum
int fsrValue_0 = analogRead(A4); //hi-hat pedal
////////////////////////////////// EDIT MODE ////////////////////////////////////
int UP[4] = {5, 50, 1,1}; //{threshold, sensitivity, note, flag}
int UP_ADVANCE[4] = {1, 50, 1,1}; //{scantime, rim / head, pedal velocity ,masktime}
Arduino Minimal Drum Kit: Page 36
char* instrument[] = {
"SNARE HEAD", "SNARE RIM", "HIHAT OPEN",
"HIHAT CLOSE", "HIHAT PEDAL", "KICK", "ADVANCED SETTING"
};
char* setting[] = {
"THRESHOLD", "SENSITIVITY", "NOTE", "FLAG"
};
char* setting_ADVANCE[] = {
"SCAN TIME", "HEAD / RIM ","PEDAL VELO", "MASK TIME"
};
if (UPDOWN < 0) {
UPDOWN = 6;
}
if (UPDOWN > 6) {
UPDOWN = 0;
}
if (NEXTBACK < 0) {
NEXTBACK = 3;
}
if (NEXTBACK > 3) {
NEXTBACK = 0;
}
////////////////////////////// EDIT BUTTON ////////////////////////////////
if (button_set == LOW && buttonState == true && buttonState_set == true) {
lcd.clear();
lcd.print("EDIT");
buttonState = false;
buttonState_set = false;
delay(500);
}
if (button_set == LOW && buttonState == true && buttonState_set == false) {
lcd.clear();
lcd.print("EDIT DONE");
buttonState = false;
buttonState_set = true;
delay(500);
}
if (button_up == LOW && buttonState == true && buttonState_set == false) {
switch (UPDOWN) {

Arduino Minimal Drum Kit: Page 37


case 0:
SNARE[NEXTBACK] = SNARE[NEXTBACK] + UP[NEXTBACK];
break;
case 1:
SNARE_RIM[NEXTBACK] = SNARE_RIM[NEXTBACK] + UP[NEXTBACK];
break;
case 2:
switch (NEXTBACK) {
case 2:
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] + UP[NEXTBACK];
break;
default:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] + UP[NEXTBACK];
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] + UP[NEXTBACK];
}
break;
case 3:
switch (NEXTBACK) {
case 2:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] + UP[NEXTBACK];
break;
default:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] + UP[NEXTBACK];
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] + UP[NEXTBACK];
}
break;
case 4:
switch (NEXTBACK) {
case 0:
HIHAT_PEDAL[NEXTBACK] = HIHAT_PEDAL[NEXTBACK] + UP[NEXTBACK];
break;
case 2:
HIHAT_PEDAL[NEXTBACK] = HIHAT_PEDAL[NEXTBACK] + UP[NEXTBACK];
break;
}
break;
case 5:
KICK[NEXTBACK] = KICK[NEXTBACK] + UP[NEXTBACK];
break;

Arduino Minimal Drum Kit: Page 38


case 6:
SETTING[NEXTBACK] = SETTING[NEXTBACK] + UP_ADVANCE[NEXTBACK];
break;
}
buttonState = false;
delay(30);
}
if (button_down == LOW && buttonState == true && buttonState_set == false) {
switch (UPDOWN) {
case 0:
SNARE[NEXTBACK] = SNARE[NEXTBACK] - UP[NEXTBACK];
break;
case 1:
SNARE_RIM[NEXTBACK] = SNARE_RIM[NEXTBACK] - UP[NEXTBACK];
break;
case 2:
switch (NEXTBACK) {
case 2:
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] - UP[NEXTBACK];
break;
default:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] - UP[NEXTBACK];
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] - UP[NEXTBACK];
}
break;
case 3:
switch (NEXTBACK) {
case 2:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] - UP[NEXTBACK];
break;
default:
HIHAT_CLOSE[NEXTBACK] = HIHAT_CLOSE[NEXTBACK] - UP[NEXTBACK];
HIHAT[NEXTBACK] = HIHAT[NEXTBACK] - UP[NEXTBACK];
}
break;
case 4:
switch (NEXTBACK) {
case 0:
HIHAT_PEDAL[NEXTBACK] = HIHAT_PEDAL[NEXTBACK] - UP[NEXTBACK];

Arduino Minimal Drum Kit: Page 39


break;
case 2:
HIHAT_PEDAL[NEXTBACK] = HIHAT_PEDAL[NEXTBACK] - UP[NEXTBACK];
break;
}
break;
case 5:
KICK[NEXTBACK] = KICK[NEXTBACK] - UP[NEXTBACK];
break;
case 6:
SETTING[NEXTBACK] = SETTING[NEXTBACK] - UP_ADVANCE[NEXTBACK];
break;
}
buttonState = false;
delay(30);
}
///////////////////////////// UP DOWN NEXT BACK ////////////////////////////////
if (button_up == LOW && buttonState == true && buttonState_set == true) {
UPDOWN = ++UPDOWN;
buttonState = false;
delay(30);
}
if (button_down == LOW && buttonState == true && buttonState_set == true) {
UPDOWN = --UPDOWN;
buttonState = false;
delay(30);
}
if (button_next == LOW && buttonState == true && buttonState_set == true) {
NEXTBACK = ++NEXTBACK;
buttonState = false;
delay(30);
}
if (button_back == LOW && buttonState == true && buttonState_set == true) {
NEXTBACK = --NEXTBACK;
buttonState = false;
delay(30);
}
if (buttonState == false && button_up == HIGH && button_down == HIGH && button_next ==
HIGH && button_back == HIGH && button_set == HIGH) {
switch (UPDOWN) {
Arduino Minimal Drum Kit: Page 40
case 0:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(SNARE[NEXTBACK]);
break;
case 1:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(SNARE_RIM[NEXTBACK]);
break;
case 2:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(HIHAT[NEXTBACK]);
break;
case 3:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(HIHAT_CLOSE[NEXTBACK]);
break;
case 4:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(HIHAT_PEDAL[NEXTBACK]);

Arduino Minimal Drum Kit: Page 41


break;
case 5:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(KICK[NEXTBACK]);
break;
case 6:
lcd.clear();
lcd.print(instrument[UPDOWN]);
lcd.setCursor(0, 1);
lcd.print(setting_ADVANCE[NEXTBACK]);
lcd.setCursor(12, 1);
lcd.print(SETTING[NEXTBACK]);
break;
}
buttonState = true;
}

Hi Sir Ryo,
I cant understand the step 14. :(
Can you help me to understand this.

Hi Rendel,
Oh, this step certainly was short of explanation.
First, download attached "dualMoco.hex" in your PC and move to Downloads.
next, please proceed exactly according to this page.
https://www.arduino.cc/en/Hacking/DFUProgramming8U2
Only change the description according to the attached image.
Good luck!

Hi Sir,
I had a problem code uploading using your code.
Here's the problem.
Arduino Minimal Drum Kit: Page 42
Arduino: 1.8.6 Hourly Build 2017/10/30 11:33 (Windows 10), Board: "Arduino/Genuino Mega or
Mega 2560, ATmega2560 (Mega 2560)"
C:\Users\MRBello\Downloads\HELLODRUM\HELLODRUM.ino:23:18: fatal error: MIDI.h: No such
file or directory
#include <MIDI.h>
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Hi Ryo,
Is this right? Thanks

Nice! That's right.

Hi!,
Did you finished this with arduino mega?

Please give me softwer for android tablet

Interesting. I was have recently begun to look into drums. I'll have to try making a set like this
sometime.

Thanks!

Arduino Minimal Drum Kit: Page 43

You might also like