[ DESIGN ]
Project Idea
Initially, we wanted to build a drum machine, which synthesize its own drum-sounds. We then learned about the MIDI protocol and the General MIDI (GM) Drum Specification from a friend who owns a music keyboard. We thought it would be more fun to be able to play “real” percussion sounds by striking physical drum pads instead of playing from the keyboard. Thus, the idea for the “ MIDI drum machine” was born.
Project Structure
An overview of our project setup is as follows:
When a drum-pad is hit, the z-axis accelerometer on the underside of the drum-pad would send an analog voltage waveform to the microcontroller. Using the ADC to track the peak voltage recorded by the drum hit, and de-bounce the “tail”, the microcontroller will then output the appropriate MIDI message through USART to a drum synthesizer or sound module to play the drum sounds. As we are using a Roland RS-70 keyboard as our sound module, we have to write our MIDI messages according to the Roland MIDI Exclusive Format for the keyboard to recognize the MIDI messages to generate the right drum sounds.
Hardware/ software Tradeoffs
Our basic drum-pads provide an alternative way of playing percussion sounds instead of playing from the keyboard. They have limited range of expressive drum performance. The drum-pads have limited velocity and volume control compared to playing percussion sounds on the keyboard. Since our simple drum-pads are small, they would not withstand drum sticks or mallets, but they would provide hours of entertainment of drum playing with fingers or hands.
Standards
MIDI (Musical Instrument Digital Interface)
MIDI is a digital communication language and hardware specification that allows multiple electronic instruments, music controllers, computers and other related devices to communicate with each other within a connected network. We specifically refer to the
MIDI 1.0 Specification by the MIDI Manufacturer's Association, MMA to write our MIDI messages for detection by the RS-70 Sound Synthesizer.
The MIDI messages that are relevant in our project are the note-on, note-off, and program change message. Most MIDI messages consist of three bytes. The first byte is a status byte which identifies the message type such as note on or note off. The second byte is the value of the MIDI note of the drum triggered as shown in the GM Drum Key Map. The third byte is the velocity byte. The velocity byte denotes the loudness of a sounding note. When the velocity byte is zero, it is equivalent to a note off message.
General MIDI
General MIDI (GM) is a standard that assigns 128 instrument patches in a specific order. GM enables musicians to put Program Change messages in their MIDI song files, where the correct or originally intended instruments will be selected to play the song file. The percussive instrument patch relevant to our project is shown in the GM Patch Map with the Program Change number of 113 to 120. These numbers are used in our Program Change MIDI message.
GM Patch Map
PERCUSSIVE |
Prog# |
Instrument |
113
114
115
116
117
118
119
120
|
Tinkle Bell
Agogo
Steel Drums
Woodblock
Taiko Drum
Melodic Tom
Synth Drum
Reverse Cymbal
|
Usually a GM module will also have a “drum component ” with each MIDI note triggering a different drum sound. The assignments of drum sounds to specific MIDI notes are shown in the GM Drum Key Map. The drum module is usually set to receive MIDI message on Channel 10.
GM Drum Key Map
MIDI Note # Drum Sound |
MIDI Note # Drum Sound |
35 Acoustic Bass Drum
36 Bass Drum 1
37 Side Stick
38 Acoustic Snare
39 Hand Clap
40 Electric Snare
41 Low Floor Tom
42 Closed Hi-Hat
43 High Floor Tom
44 Pedal Hi-Hat
45 Low Tom
46 Open Hi-Hat
47 Low-Mid Tom
48 Hi-Mid Tom
49 Crash Cymbal 1
50 High Tom
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2 |
58 Vibraslap
59 Ride Cymbal 2
60 Hi Bongo
61 Low Bongo
62 Mute Hi Conga
63 Open Hi Conga
64 Low Conga
65 High Timbale
66 Low Timbale
67 High Agogo
68 Low Agogo
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 Hi Wood Block
77 Low Wood Block
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle
|
Patents/ Copyrights/ Trademarks
The Roland RS-70 owner’s manual is the copyright property of Roland Corporation. We had to refer to the manual for the MIDI Exclusive Format for our MIDI messages to be recognized by the RS-70 Sound Synthesizer. The MIDI Exclusive Format contains exclusive messages used for exchanging patches and data information between compatible devices from Roland Corporation.
Our drum controller can also use the following addtional drum patches specific to Roland RS-70.
Roland Rhythm Set |
Prog# |
Instrument |
Prog# |
Instrument |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Standard Kit 1
Standard Kit 2
Standard Kit 3
RS Rock Kit
RS Funk Kit
RS Jazz Kit
RS Brush Kit
RS Orch Kit
R&B Kit 1
R&B Kit 2
Hip Hop Kit
Techno Kit
House Kit
Break Bts Kit
TR Kit |
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Perc Menu
Vox & Clap Menu
Fx Menu
Menu 1
Menu 2
Menu 3
GM2 Standard
GM2 Room
GM2 Power
GM2 Electric
GM2 Analog
GM2 Jazz
GM2 Brush
GM2 Orchestra
GM2 SFX |
Home | Introduction | Design | Hardware | Software | Results & Conclusions | Appendix
Copyright @2005 Siew Im & Zheshen |