Perancangan dan Realisasi MIDI Drum Pad Menggunakan Mikrokontroler ATMega 16.
Universitas Kristen Maranatha i
Perancangan dan Realisasi MIDI Drum Pad
Menggunakan Mikrokontroler ATMega16
Design and Realization MIDI Drum Pad Using ATMega16
Microcontroller
Molly Sitompul/0722071
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia
ABSTRAK
Dalam Tugas Akhir ini, dibuat sebuah miniatur digital drum (drum pad) dengan protokol MIDI (Musical Instrument Digital Interface) yang menggunakan Mikrokontroler ATMega16. Drum pad yang direalisasikan ini menggunakan piezoelectric sensor sebagai penangkap pukulan dari pemukul drum. Sensor mendeteksi getaran dan menghasilkan tegangan dan selanjutnya disambungkan ke rangkaian pengondisi sinyal. Tegangan keluaran dari rangkaian pengondisi sinyal ini diterima oleh mikrokontroler melalui ADC (Analog to Digital Converter) dan diolah menjadi data MIDI. Data MIDI dari mikrokontroler dikirim ke komputer menggunakan komunikasi Serial RS232 dan selanjutnya diolah oleh komputer melalui program synthesizer pada komputer sehingga dapat menghasilkan bunyi sesuai instrumen yang diinginkan.
Pengujian dilakukan dengan menegukur tegangan keluaran sensor, pengamatan MIDI Message, dan dengan memainkan tiga buah lagu dengan tempo dan ketukan yang berbeda. Tegangan keluaran sensor dapat mencapai 15 volt dan nilai velocity pada MIDI message jauh lebih kecil dari nilai maksimum yang diinginkan (127 dalam decimal) dan terjadi delay sebesar ¼ ketukan pada lagu dengan tempo 170 BPM.
(2)
Universitas Kristen Maranatha ii
Perancangan dan Realisasi MIDI Drum Pad
Menggunakan Mikrokontroler ATMega 16
Design and Realization MIDI Drum Pad Using ATMega16
Microcontroller
Molly Sitompul/0722071
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia
ABSTRACT
In this Final Project, a miniature of digital drum (drum pad) with MIDI protocol that using ATMega16 Microcontroller has been made. This drum pad uses piezoelectric sensor to sense the hit of drum stick. Piezoelectric sensor detect the vibration and generate the voltage and then connected to a signal conditioning circuit. The output voltage of the signal conditioning circuit is read by the microcontroller through the ADC (Analog to Digital Converter) and processed to be the MIDI data. The MIDI data from the microcontroller is sent to the computer using RS232 serial communication and then processed by computer by the synthesizer program so the computer can produce the desired instrument sound.
The test is done by measuring the output voltage of the sensors, observing the MIDI messages, and playing three songs with different tempo and different beats. The output voltage level of the sensor can be reached 15 volt, the velocity value of MIDI message is far under the desired value (127 on decimal) and there are ¼ beat delays on the song with 170 BPM tempo.
(3)
Universitas Kristen Maranatha v
DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR GAMBAR ... ix
BAB I PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 1
1.3 Tujuan ... 1
1.4 Pembatasan Masalah ... 2
1.5 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI 2.1 Drum Kit ... 4
2.2 Teori Dasar Musik ... 5
2.3 Mikrokontroller ATMega 16 ... 6
2.4 IC MAX232 ... 7
2.5 Piezoelectric Sensor ... 8
2.5.1 Piezoelectric Effect ... 8
2.5.2 Model Pengganti ... 8
2.6 MIDI ... 9
2.6.1 Channel Voice Message ... 10
2.6.1.1 Note On/Note Off ... 11
2.6.1.2 After Touch ... 12
2.6.1.3 Control Change... 12
(4)
Universitas Kristen Maranatha vi
2.6.1.5 Pitch Bend ... 12
2.6.2 Channel Mode Message ... 12
2.7 Komunikasi Serial ... 12
2.7.1 Komunikasi Asynchronous dan Synchronous ... 13
2.7.2 Format Data ... 13
2.7.3 Bit Rate dan Baud Rate ... 14
2.8 MIDI Yoke NT ... 15
2.8 Serial to MIDI Convereter ... 15
2.10 Cakewalk Pro Audio 9 ... 15
BAB III PERANCANGAN 3.1 Perangkat Keras ... 17
3.1.1 Diagram Blok Perangkat Keras... 18
3.1.2 Skematik Rangkaian ... 18
3.1.2.1 Bagian Sensor ... 19
3.1.2.2 Bagian Signal Conditioning ... 20
3.1.2.3 Bagian Clock Eksternal ... 21
3.1.2.4 Bagian Komunikasi Serial ... 21
3.1.3 Program Pengolah Data pada ATMega 16 ... 22
3.2 Perangkat Lunak ... 28
3.2.1 Virtual MIDI Port ... 29
3.2.2 Serial to MIDI Converter ... 30
3.2.3 Perangkat Lunak Perekam Data MIDI ... 33
BAB IV DATA PENGAMATAN 4.1 Tegangan Keluaran Sensor ... 36
4.2 MIDI Message ... 37
4.3 Uji Ketepatan dalam Penggunaan ... 38
(5)
Universitas Kristen Maranatha vii
4.3.2 Lagu Sejak Yesus di Hatiku ... 41 4.3.3 Lagu Amelia ... 42 4.4 Analisa Data ... 44
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan ... 45 5.2 Saran ... 45 DAFTAR PUSTAKA ... 46 LAMPIRAN
(6)
Universitas Kristen Maranatha viii
DAFTAR GAMBAR
Gambar 2.1 Drum Kit ... 4
Gambar 2.2 Pin ATMega 16 ... 7
Gambar 2.3 Konfigurasi Pin MAX232 ... 7
Gambar 2.4 Rangkaian Pengganti Piezoelectric Sensor ... 8
Gambar 2.5 Respon Frekuensi Piezoelectric Sensor ... 9
Gambar 2.6 Piezoelectric Sensor Sebagai Sumber Tegangan ... 9
Gambar 2.7 Format Data Serial MIDI ... 10
Gambar 2.8 MIDI Message ... 10
Gambar 2.9 Transmisi Asynchronous dan Syncronous ... 14
Gambar 3.1a Diagram Blok Sistem ... 17
Gambar 3.1b Diagram Blok Perangkat Keras... 18
Gambar 3.2 Rangkaian MIDI Drum Pad ... 19
Gambar 3.3 Rangkaian Pembagi Tegangan ... 20
Gambar 3.4 Rangkaian IC MAX232 ... 22
Gambar 3.5a Diagram Alir Program Utama AVR ... 25
Gambar 3.5b Diagram Alir Fungsi untuk Membaca Tegangan ... 26
Gambar 3.5c Dialir Fungsi Pengirim Data ... 26
Gambar 3.6 Diagram Blok Perangkat Lunak yang Digunakan ... 29
Gambar 3.7 Tampilan Konfigurasi MIDI Yoke NT ... 30
Gambar 3.8 Pemilihan Serial Port pada Serial to MIDI Converter ... 31
Gambar 3.9 Pemilihan Baud Rate pada Serial to MIDI Converter ... 31
Gambar 3.10a MIDI Input Port pada Serial to MIDI Converter ... 32
Gambar 3.10b MIDI Output Port pada Serial to MIDI Converter ... 32
Gambar 3.11 Tampilan Utama pada Serial to MIDI Converter ... 33
Gambar 3.12 Tampilan Utama Cakewalk Pro Audio 9 ... 34
Gambar 3.13 Pengaturan MIDI Device pada Cakewalk Pro Audio 9 ... 34
Gambar 3.14 Track Properties pada Cakewalk Pro Audio 9 ... 35
(7)
Universitas Kristen Maranatha ix
DAFTAR TABEL
Tabel 2.1 Status Byte ... 4
Tabel 3.1 Keterangan Variabel pada Diagram Alir ... 27
Tabel 3.2 Pitch Byte pada Program Mikrokontroller ... 28
Tabel 4.1 Tegangan Keluaran Sensor ... 36
Tabel 4.2 MIDI Message ... 37
Tabel 4.3 Pengamatan Intro Lagu Allah Peduli ... 40
Tabel 4.4 Pengamatan Verse Lagu Allah Peduli ... 40
Tabel 4.5 Pengamatan Reff Lagu Allah Peduli ... 41
Tabel 4.6 Pengamatan Verse Lagu Sejak Yesus di Hatiku ... 42
Tabel 4.7 Pengamatan Reff Lagu Sejak Yesus di Hatiku ... 43
Tabel 4.8 Pengamatan Intro Lagu Amelia ... 43
(8)
Lampiran A
(9)
Gambar A.2. Skematik Rangkaian
(10)
Lampiran B
(11)
/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Professional Automatic Program Generator
� Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Version :
Date : 1/31/2012
Author : F4CG Company : F4CG Comments:
Chip type : ATmega16 Program type : Application Clock frequency : 14.745600 MHz Memory model : Small
External SRAM size : 0 Data Stack size : 256
*****************************************************/
#include <mega16.h>
// Standard Input/Output functions #include <stdio.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; return ADCW; }
//function declare
int baca(int n);
void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY);
int i, x, b; //variable umum
unsigned char PadNote[8] = {42,38,45,35,41,47,52,57}; // MIDI notes from 0 to 127 (Mid C = 60)
int PadCutOff = 100; // Nilai ADC minimum yang akan diproses
(12)
int MaxPlayTime = 90; // counter untuk pembacaan pukulan berikutnya
#define midichannel 0; // MIDI channel from 0 to 15 (+1 in "real world")
int VelocityFlag = 1; // Velocity ON (1) or OFF (0) //variable acc
int activePad= 0; // Array of flags of pad currently playing
int PinPlayTime = 0; // Counter since pad started to play int pin;
int hitavg;
// Declare your global variables here void main(void)
{
// Declare your local variables here // Input/Output Ports initialization // Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh
// OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh
(13)
// OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh
// OC2 output: Disconnected ASSR=0x00;
TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On
// USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 57600 UCSRA=0x00;
UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x0F;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 921.600 kHz B - 3
(14)
// ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;
while (1)
{for(pin=0; pin < 8; pin++)
{hitavg = read_adc(pin); // read the input pin if((hitavg>PadCutOff[pin]))
{ hitavg=baca(pin);
if((activePad[pin] == 0)) {
if(VelocityFlag == 1) {
hitavg = (hitavg / 8) -1 ; }
else {
hitavg = 127; }
MIDI_TX(153,PadNote,hitavg); PinPlayTime = 0;
activePad = 1; }
else {
PinPlayTime = PinPlayTime + 1; }
}
else if((activePad == 1)) {
PinPlayTime = PinPlayTime + 1; if(PinPlayTime >MaxPlayTime) {
activePad = 0;
MIDI_TX(139,PadNote[pin],127); }
} }
// Place your code here };
}
int baca(int n) {x=0; for(i=0;i<100;i++) { b=read_adc(n); if(x<b) x=b; } return x; }
void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY) { printf("%c",MESSAGE); printf("%c",PITCH); printf("%c",VELOCITY); }
(15)
Lampiran C
(16)
Gambar C – 1. MIDI Drum Pad Tampak Atas
Gambar C – 2. MIDI Drum Pad Tampak Samping
C – 1
Hi - hat
Crash
Cymbal
Snare
Middle
Tom 1
Middle
Tom 2
Ride
Cymbal
Bass
(17)
Gambar C – 3. Penempatan dan Dudukan Sensor
Gambar C – 4. Rangkaian Mikrokontroler
(18)
Lampiran D
(19)
D - 1
Table 1: MIDI 1.0 Specification Message Summary Status
D7----D0
Data Byte(s) D7----D0
Description
Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)] 1000nnnn 0kkkkkkk
0vvvvvvv
Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
1001nnnn 0kkkkkkk 0vvvvvvv
Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
1010nnnn 0kkkkkkk 0vvvvvvv
Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
1011nnnn 0ccccccc 0vvvvvvv
Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127). 1100nnnn 0ppppppp Program Change. This message sent when the
patch number changes. (ppppppp) is the new program number.
1101nnnn 0vvvvvvv Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
1110nnnn 0lllllll
0mmmmmmm
Pitch Wheel Change. 0mmmmmmm This message is sent to indicate a change in the pitch wheel. The pitch wheel is measured by a fourteen bit value. Center (no pitch change) is 2000H.
Sensitivity is a function of the transmitter. (llllll) are the least significant 7 bits. (mmmmmm) are the most significant 7 bits.
(20)
D – 2
Table 2: Expanded Status Bytes List
STATUS BYTE DATA BYTES
1st Byte Value Binary |Hex| Dec
Function 2nd Byte 3rd Byte
10000000= 80= 128 Chan 1 Note off Note Number (0-127) Note Velocity (0-127) 10000001= 81= 129 Chan 2 Note off Note Number (0-127) Note Velocity (0-127) 10000010= 82= 130 Chan 3 Note off Note Number (0-127) Note Velocity (0-127) 10000011= 83= 131 Chan 4 Note off Note Number (0-127) Note Velocity (0-127) 10000100= 84= 132 Chan 5 Note off Note Number (0-127) Note Velocity (0-127) 10000101= 85= 133 Chan 6 Note off Note Number (0-127) Note Velocity (0-127) 10000110= 86= 134 Chan 7 Note off Note Number (0-127) Note Velocity (0-127) 10000111= 87= 135 Chan 8 Note off Note Number (0-127) Note Velocity (0-127) 10001000= 88= 136 Chan 9 Note off Note Number (0-127) Note Velocity (0-127) 10001001= 89= 137 Chan 10 Note off Note Number (0-127) Note Velocity (0-127) 10001010= 8A= 138 Chan 11 Note off Note Number (0-127) Note Velocity (0-127) 10001011= 8B= 139 Chan 12 Note off Note Number (0-127) Note Velocity (0-127) 10001100= 8C= 140 Chan 13 Note off Note Number (0-127) Note Velocity (0-127) 10001101= 8D= 141 Chan 14 Note off Note Number (0-127) Note Velocity (0-127) 10001110= 8E= 142 Chan 15 Note off Note Number (0-127) Note Velocity (0-127) 10001111= 8F= 143 Chan 16 Note off Note Number (0-127) Note Velocity (0-127) 10010000= 90= 144 Chan 1 Note on Note Number (0-127) Note Velocity (0-127) 10010001= 91= 145 Chan 2 Note on Note Number (0-127) Note Velocity (0-127) 10010010= 92= 146 Chan 3 Note on Note Number (0-127) Note Velocity (0-127) 10010011= 93= 147 Chan 4 Note on Note Number (0-127) Note Velocity (0-127) 10010100= 94= 148 Chan 5 Note on Note Number (0-127) Note Velocity (0-127) 10010101= 95= 149 Chan 6 Note on Note Number (0-127) Note Velocity (0-127) 10010110= 96= 150 Chan 7 Note on Note Number (0-127) Note Velocity (0-127) 10010111= 97= 151 Chan 8 Note on Note Number (0-127) Note Velocity (0-127) 10011000= 98= 152 Chan 9 Note on Note Number (0-127) Note Velocity (0-127) 10011001= 99= 153 Chan 10 Note on Note Number (0-127) Note Velocity (0-127) 10011010= 9A= 154 Chan 11 Note on Note Number (0-127) Note Velocity (0-127) 10011011= 9B= 155 Chan 12 Note on Note Number (0-127) Note Velocity (0-127) 10011100= 9C= 156 Chan 13 Note on Note Number (0-127) Note Velocity (0-127) 10011101= 9D= 157 Chan 14 Note on Note Number (0-127) Note Velocity (0-127) 10011110= 9E= 158 Chan 15 Note on Note Number (0-127) Note Velocity (0-127) 10011111= 9F= 159 Chan 16 Note on Note Number (0-127) Note Velocity (0-127)
(21)
MIDI Percussion Pitch Byte
D – 3
Pitch Byte (Dec) Bunyi Pitch Byte (Dec) Bunyi3
35 Bass Drum 2 59 Ride Cymbal 2 36 Bass Drum 1 60 High Bongo 37 Side Stick 61 Low Bongo 38 Snare Drum 1 62 Mute High Conga 39 Hand Clap 63 Open High Conga 40 Snare Drum 1 64 Low Conga 41 Low Tom 2 65 High Timbale 42 Closed Hi-hat 66 Low Tombale 43 Low Tom 1 67 High Agogo 44 Pedal Hi-hat 68 Low Agogo 45 Mid Tom 2 69 Cabasa 46 Open Hi-hat 70 Maracas 47 Mid Tom 1 71 Short Whistle 48 High Tom 2 72 Long Whistle 49 Crash Cymbal 1 73 Short Guiro 50 High Tom 1 74 Long Guiro 51 Ride Cymbal 1 75 Claves
52 Chinese Cymbal 76 High Wood Block 53 Ride Bell 77 Low Wood Block 54 Tambourine 78 Mute Cuica 55 Splash Cymbal 79 Open Cuica 56 Cowbell 80 Mute Triangle 57 Crash Cymbal 2 81 Open Triangle
(22)
Lampiran E
(23)
E – 1
Allah Peduli
(24)
(25)
(26)
E – 4
(27)
(28)
(29)
(30)
Lampiran F
(31)
(32)
(33)
(34)
Lampiran G
(35)
(36)
(37)
Lampiran H
(38)
(39)
(40)
Lampiran I
(41)
(42)
(43)
(44)
Lampiran J
(45)
(46)
(47)
(48)
(49)
(50)
Lampiran K
(51)
(52)
Universitas Kristen Maranatha 1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan dunia musik untuk masa sekarang sudah sangat pesat. Perkembangan tersebut meliputi perkembangan alat-alat musik, perkembangan teknik bermain musik, bahkan perkembangan alat-alat musik. Alat-alat musik listrik tidak lagi sebatas analog saja (contoh: gitar listrik dan bass listrik), tetapi sudah ada yang bekerja secara digital, misal:
digital keyboard, digital drum, dan lainnya. Alat musik digital sudah
banyak digunakan dalam industri musik bahkan dalam kebutuhan musik harian. Kemudahan pemrosesan pada alat musik digital merupakan salah satu alasan para pemusik untuk mau menggunakan alat musik digital.
Pada tugas akhir ini dilakukan perancangan dan realisasi drum pad atau digital drum berbasis MIDI (Musical Instrument Digital Interface). Dengan mempelajari MIDI dan membuat sebuah alat musik berbasis MIDI menggunakan Mikrokontroler ATMega 16, Tugas Akhir ini diharapkan mampu menjadi sesuatu yang bermanfaat bagi para musisi, penelitian, dan perkembangan dunia pendidikan tentunya.
1.2. Perumusan Masalah
Permasalahan yang akan dibahas dalam tugas akhir ini meliputi :
1. Bagaimana membuat sebuah alat musik drum pad berbasis MIDI dengan menggunakan Mikrokontroler ATMega16.
2. Bagaimana mengaplikasikan Mikrokontroler ATMega16 untuk mengendalikan data MIDI.
1.3. Tujuan
Tujuan yang ingin dicapai dari tugas akhir ini adalah:
(53)
Universitas Kristen Maranatha 2
2. Membuat alat musik digital berupa drum pad yang berbasis MIDI menggunakan ATMega 16.
1.4. Batasan Masalah
1. Membuat alat drum pad (alat input) yang terdiri dari snare, bass,
crash cymbal, ride cymbal 2, hi hat, midlle tom 1, middle tom 2, dan low tom 3 sebagai pengganti drum non-elektrik biasanya.
2. Menggunakan Mikrokontroler ATMega16 sebagai pengolah data
input menjadi data MIDI.
3. Menggunakan synthesizer dari komputer
4. Menggunakan sensor piezoelectric sebagai pendeteksi pukulan dari pemukul.
5. Menggunakan perangkat lunak Serial To MIDI converter sebagai
converter data serial ke data MIDI, MIDI Yoke sebagai virtual MIDI port, dan Cakewalk Pro Audio 9 sebagai perangkat lunak perekam
data MIDI.
6. Jarak penenmpatan antar sensor dan konstruksi dudukan sensor tidak diperhitungkan.
1.5. Sistematika Penulisan
Sistematika penulisan laporan kerja praktek ini disusun menjadi lima bab, yaitu sebagai berikut:
Bab 1 Pendahuluan
Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, dan sistematika penulisan.
Bab 2 Landasan Teori
Bab ini membahas mengenai Drum Kit, Teori Dasar Musik,
Piezoelectric Sensor, Mikrokontroler ATMega 16, IC MAX 232, MIDI,
(54)
Universitas Kristen Maranatha 3
Lunak yang digunakan untuk Tugas Akhir ini. Bab 3 Perancangan
Bab ini membahas mengenai perancangan dan realisasi perangkat keras serta penggunaan perangkat lunak. Pembahasan perangkat keras meliputi diagram blok perangkat keras, skema rangkaian, dan program pada mikrokontroler ATMega 16. Pembahasan perangkat lunak meliputi perangkat lunak yang digunakan, yaitu Virtual MIDI Port, perangkat lunak pengkonversi serial ke MIDI, dan perangkat lunak perekam data MIDI. Bab 4 Data Pengamatan
Bab ini membahas hasil uji coba dari alat yang dibuat. Uji coba meliputi yang dilakukan meliputi tegangan keluaran sensor, MIDI
Message, dan uji coba ketepatan dalam penggunaan dengan memainkan
lagu.
Bab 5 Kesimpulan dan Saran
Bab ini berisi kesimpulan yang dapat diambil dari proses pembuatan alat serta saran-saran untuk penggunaan dan pengembangan lebih lanjut.
(55)
Universitas Kristen Maranatha 45
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Melalui Tugas Akhir ini, perancangan dan realisasi drum pad dengan berbasis MIDI dan menggunakan ATMega 16 berhasil dilakukan.
2. Nilai velocity yang dihasilkan masih jauh dari maksimum. Nilai
velocity maksimum adalah 127 dalam desimal. Velocity dengan
nilai ini terdengar cukup jelas ketika dilakukan perekaman MIDI dan ketika MIDI file dimainkan. Hal ini terjadi karena pada saat pencuplikan tegangan pada port ADC, nilai tegangan tertinggi yang dibaca mikrokontroller tidak benar-benar pada tegangan tertinggi pada bagian keluaran signal conditioning.
3. Dari beberapa jenis lagu yang direkam, dapat diamati bahwa delay akan semakin terasa ketika tempo semakin cepat. Hal ini terjadi karena banyaknya perangkat lunak yang digunakan dalam pengolahan data MIDI pada komputer.
5.2. Saran
1. Algoritma program pada mikrokontroler dapat diperbaiki untuk dapat membaca dan mendapatkan nilai tegangan tertinggi dari bagian keluaran signal conditioning.
2. Untuk mengurangi kemungkinan terjadinya delay akibat
penggunaan perangkat lunak yang terdiri dari banyak tahap (Serial to MIDI Converter, Virtual MIDI Port, dan Perekam Data MIDI), perlu digunakan perangkat lunak yang lebih efeisien dan terintegrasi dengan bagian hardware dan synthesizer.
(56)
Universitas Kristen Maranatha
46
DAFTAR PUSTAKA
1. Axelson, Jan. 2007. Serial Port Complete: COM Ports, USB Virtual COM Ports, and Ports for Embedded System Second Edition. Madison, Wisconsin: Lakeview Research LLC.
2. Andrianto, Heri. 2008. Pemrograman Mikrokontroller AVR ATMega16 Menggunakan Bahasa C (Code Vision AVR). Bandung: Informatika 3. Atmadja, Rei Suryana. 1998. Alat Pemain Ulang Data MIDI Interaktif.
Bandung: Jurusan Teknik Elektri Fakultas Teknik Universitas Kristen Maranatha.
4. Drum KitKit. http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html. Diakses Tanggal 26 Juni 2011.
5. General MIDI. http://en.wikipedia.org/wiki/General_MIDI. Diakses Tanggal 25 Oktober 2011.
6. MIDI Message Table. http://www.midi.org/techspecs/midimessages.php. Diakses Tanggal 25 Oktober 2011.
7. Musical Instrument Digital Interface.
http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface. Diakses Tanggal 26 Juni 2011.
8. Piezoelectricity. http://en.wikipedia.org/wiki/Piezoelectric_effect. Diakses Tanggal 25 Oktober 2011.
9. Piezoelectric Snensor. http://en.wikipedia.org/wiki/Piezoelectric_sensor. Diakses Tanggal, 28 Oktober 2011.
10.Serial MIDI. http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html. Diakses Tanggal 25 Oktober 2011.
(1)
(2)
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan dunia musik untuk masa sekarang sudah sangat pesat. Perkembangan tersebut meliputi perkembangan alat-alat musik, perkembangan teknik bermain musik, bahkan perkembangan alat-alat musik. Alat-alat musik listrik tidak lagi sebatas analog saja (contoh: gitar listrik dan bass listrik), tetapi sudah ada yang bekerja secara digital, misal: digital keyboard, digital drum, dan lainnya. Alat musik digital sudah banyak digunakan dalam industri musik bahkan dalam kebutuhan musik harian. Kemudahan pemrosesan pada alat musik digital merupakan salah satu alasan para pemusik untuk mau menggunakan alat musik digital.
Pada tugas akhir ini dilakukan perancangan dan realisasi drum pad atau digital drum berbasis MIDI (Musical Instrument Digital Interface). Dengan mempelajari MIDI dan membuat sebuah alat musik berbasis MIDI menggunakan Mikrokontroler ATMega 16, Tugas Akhir ini diharapkan mampu menjadi sesuatu yang bermanfaat bagi para musisi, penelitian, dan perkembangan dunia pendidikan tentunya.
1.2. Perumusan Masalah
Permasalahan yang akan dibahas dalam tugas akhir ini meliputi :
1. Bagaimana membuat sebuah alat musik drum pad berbasis MIDI dengan menggunakan Mikrokontroler ATMega16.
2. Bagaimana mengaplikasikan Mikrokontroler ATMega16 untuk mengendalikan data MIDI.
1.3. Tujuan
Tujuan yang ingin dicapai dari tugas akhir ini adalah:
(3)
2. Membuat alat musik digital berupa drum pad yang berbasis MIDI menggunakan ATMega 16.
1.4. Batasan Masalah
1. Membuat alat drum pad (alat input) yang terdiri dari snare, bass, crash cymbal, ride cymbal 2, hi hat, midlle tom 1, middle tom 2, dan low tom 3 sebagai pengganti drum non-elektrik biasanya.
2. Menggunakan Mikrokontroler ATMega16 sebagai pengolah data input menjadi data MIDI.
3. Menggunakan synthesizer dari komputer
4. Menggunakan sensor piezoelectric sebagai pendeteksi pukulan dari pemukul.
5. Menggunakan perangkat lunak Serial To MIDI converter sebagai converter data serial ke data MIDI, MIDI Yoke sebagai virtual MIDI port, dan Cakewalk Pro Audio 9 sebagai perangkat lunak perekam data MIDI.
6. Jarak penenmpatan antar sensor dan konstruksi dudukan sensor tidak diperhitungkan.
1.5. Sistematika Penulisan
Sistematika penulisan laporan kerja praktek ini disusun menjadi lima bab, yaitu sebagai berikut:
Bab 1 Pendahuluan
Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, dan sistematika penulisan.
Bab 2 Landasan Teori
Bab ini membahas mengenai Drum Kit, Teori Dasar Musik, Piezoelectric Sensor, Mikrokontroler ATMega 16, IC MAX 232, MIDI, komunikasi serial antara mikrokontroler dengan komputer, dan Perangkat
(4)
Lunak yang digunakan untuk Tugas Akhir ini.
Bab 3 Perancangan
Bab ini membahas mengenai perancangan dan realisasi perangkat keras serta penggunaan perangkat lunak. Pembahasan perangkat keras meliputi diagram blok perangkat keras, skema rangkaian, dan program pada mikrokontroler ATMega 16. Pembahasan perangkat lunak meliputi perangkat lunak yang digunakan, yaitu Virtual MIDI Port, perangkat lunak pengkonversi serial ke MIDI, dan perangkat lunak perekam data MIDI.
Bab 4 Data Pengamatan
Bab ini membahas hasil uji coba dari alat yang dibuat. Uji coba meliputi yang dilakukan meliputi tegangan keluaran sensor, MIDI Message, dan uji coba ketepatan dalam penggunaan dengan memainkan lagu.
Bab 5 Kesimpulan dan Saran
Bab ini berisi kesimpulan yang dapat diambil dari proses pembuatan alat serta saran-saran untuk penggunaan dan pengembangan lebih lanjut.
(5)
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Melalui Tugas Akhir ini, perancangan dan realisasi drum pad dengan berbasis MIDI dan menggunakan ATMega 16 berhasil dilakukan.
2. Nilai velocity yang dihasilkan masih jauh dari maksimum. Nilai velocity maksimum adalah 127 dalam desimal. Velocity dengan nilai ini terdengar cukup jelas ketika dilakukan perekaman MIDI dan ketika MIDI file dimainkan. Hal ini terjadi karena pada saat pencuplikan tegangan pada port ADC, nilai tegangan tertinggi yang dibaca mikrokontroller tidak benar-benar pada tegangan tertinggi pada bagian keluaran signal conditioning.
3. Dari beberapa jenis lagu yang direkam, dapat diamati bahwa delay akan semakin terasa ketika tempo semakin cepat. Hal ini terjadi karena banyaknya perangkat lunak yang digunakan dalam pengolahan data MIDI pada komputer.
5.2. Saran
1. Algoritma program pada mikrokontroler dapat diperbaiki untuk dapat membaca dan mendapatkan nilai tegangan tertinggi dari bagian keluaran signal conditioning.
2. Untuk mengurangi kemungkinan terjadinya delay akibat penggunaan perangkat lunak yang terdiri dari banyak tahap (Serial to MIDI Converter, Virtual MIDI Port, dan Perekam Data MIDI), perlu digunakan perangkat lunak yang lebih efeisien dan terintegrasi dengan bagian hardware dan synthesizer.
(6)
DAFTAR PUSTAKA
1. Axelson, Jan. 2007. Serial Port Complete: COM Ports, USB Virtual COM Ports, and Ports for Embedded System Second Edition. Madison, Wisconsin: Lakeview Research LLC.
2. Andrianto, Heri. 2008. Pemrograman Mikrokontroller AVR ATMega16 Menggunakan Bahasa C (Code Vision AVR). Bandung: Informatika 3. Atmadja, Rei Suryana. 1998. Alat Pemain Ulang Data MIDI Interaktif.
Bandung: Jurusan Teknik Elektri Fakultas Teknik Universitas Kristen Maranatha.
4. Drum KitKit. http://www.spikenzielabs.com/SpikenzieLabs/DrumKitKit.html. Diakses Tanggal 26 Juni 2011.
5. General MIDI. http://en.wikipedia.org/wiki/General_MIDI. Diakses Tanggal 25 Oktober 2011.
6. MIDI Message Table. http://www.midi.org/techspecs/midimessages.php. Diakses Tanggal 25 Oktober 2011.
7. Musical Instrument Digital Interface.
http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface. Diakses Tanggal 26 Juni 2011.
8. Piezoelectricity. http://en.wikipedia.org/wiki/Piezoelectric_effect. Diakses Tanggal 25 Oktober 2011.
9. Piezoelectric Snensor. http://en.wikipedia.org/wiki/Piezoelectric_sensor. Diakses Tanggal, 28 Oktober 2011.
10.Serial MIDI. http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html. Diakses Tanggal 25 Oktober 2011.