Jumat, 30 Maret 2012

MIDI


Music  Instrument Digital Interface
Dion Arnaldo
MIDI singkatan untuk Musical Instrument Digital interface. Ini adalah protokol yang di definisikan pertama kali oleh Gordon Hall pada tahun 1982. Pengertian yang sangat penting adalah bahwa MIDI tidak mempunyai suara. MIDI adalah sistem yang mempunyai alat bernama controller dan controller ini memberikan MIDI message atau data MIDI kepada sound generator  untuk mendapatkan sampling suara yang kita inginkan dari sebuah sound generator, sound generator  mempunyai converter DAC atau digital to analog converter agar kita dapat memonitoring apa yang kita mainkan.
MIDI pada umumnya dibagi tiga bagian yaitu controller, recorder sequencer dan sound generator. Controller yang umumnya berbentuk keyboard berguna untuk memberikan MIDI message atau data MIDI kepada sound generator agar kita dapat mengambil sampling sound yang kita inginkan dan output dari controller biasanya masuk ke input dari recorder sequencer agar kita dapat merekam apa yang telah atau sedang kita mainkan output dari recorder sequencer ini dahulu ada dua jenis, yaitu output dan soft throughout, beda dari kedua output ini adalah bila pada output biasa kita tidak dapat memonitor apa yang kita mainkan dan pada soft throughout setiap data MIDI yang kita kirim selalu diteruskan ke monitor jadi kita dapat memonitor apa yang kita mainkan, di zaman computer yang cangih ini semua outputnya sudah berjenis soft throughout dan Sound generator seperti yang sudah di bahas diatas tadi adalah alat untuk controller agar dapat mengambil suara, sound generator terbagi empat jenis :
 polyphonic     = bisa mengeluarkan banyak suara dalam satu waktu
monophonic    = tidak bisa mengeluarkan banyak suara dalam satu waktu
mono timbral  = mempunya satu suara misal sound generator mempunyai sound drums saja
multy timbral  = mempunya banyak suara (jadi keyboard yang kita kenal sekarang adalah penggabungan dari controller, recorder sequencer dan sound generator)
Seperti apa sih data yang keluar dari MIDI? Nah kata kunci dari MIDI adalah digital jadi data yang dikirim atau diterima dalam system MIDI berupa angka binary, setiap data yang keluar dari controller byte terbagi tiga bagian yaitu status byte, data byte 1 dan data byte 2, dan setiap bagian memiliki delapan digit angka binary dan tentu yang kita bicarakan disini adalah data yang bersifat sudah general (umum, disamakan, atau telah disepakati bersama) karena dahulu bahasa data MIDI ini berbeda-beda sesuai dengan merek produknya hingga terciptanya sebuah kesepakatan  contoh :  1001000 (status byte), 00111100 (data byte 1) 0111111 (data byte 2), langkah pertama untuk kita mempermudah membaca data ini adalah membagi dua bagian dari setiap digit maka menjadi  : 1001 0000 (status byte), 0011 1100(data byte 1) 0111 1111 (data byte 2), pada status byte bagian pertama angka 1001  menunjukan status note on yang berarti  tuts MIDI controller lagi kita tekan dan note off di tunjukan dengan kode 1000 berikut lengkapnya yang diambil dari http://www.midi.org/techspecs/midimessages.php :
1000ß----       tuts controller lagi tidak kita tekan
1001ß----       tuts controller lagi  kita tekan
1010 ß----      Kita lagi menekan lebih dari satu nada
1011 ß----      mengganti,control
1101
ß----      Mono Pressure
1110 ß----      Pitch Bend
dan seterusnya.
 Bagian kedua dari status byte yaitu angka 0000 menunjukan channel mana yang kita pilih dari suatu sound generator :

0000 channel  1
0001 channel  2
0010 channel  3
0011 channel  4
0100 channel  5
0101 channel  6
0110 channel  7
0111 channel  8
1000 channel  9
1001 channel  10
1010 channel  11
1011 channel  12
1100 channel  13
1101 channel  14
1110 channel  15
1111 channel  16
Ingat “when determining the MIDI channel we start at 0. In other words, 0 is MIDI channel 1” untuk mengartikan gampangnya dari bahasa planet ini, setiap hasil pejumlahan  dari angka binary di tambah satu karena kita memulai dari angka decimal  0, jadi 0 adalah MIDI channel  1(Cara menjumlahkan data MIDI dijelaskan pada bagian selanjutnya)  . Untuk mengetahui banyaknya channel cara  gampangnya 4 pangkat 2 gitu hehehe, 4 dari banyaknya digit dan 2 dari kemugkinan bilangan binary.
Cara membaca dan menghitung data MIDI pada bagian data byte 1 kita membacanya dari kanan ke kiri, nominal pertama mengandung bilangan desimal sebesar satu, nominal kedua mengandung angka desimal sebesar dua dan nominal seterusnya dikalikan dua sampai nominal ke 7 karena awal (nominal ke 8) dari data byte 1 dan 2 selalu 0, jadi bila ada angka : 0000  0010 ini sebesar 2 dan 0001 1010 ini sebesar  16+10 = 26 (angka binary 1 berarti dihitung dan 0 tidak dihitung) jadi bila nomer telephone rumah saya 7376134 saya bisa menulisnya : 0000 0111, 0000 0011, 0000 0111, 0000 0110, 0000 0001, 0000 00011, 0000 01000 (sok asik dikit hehehe) Data byte 1 ini menunjukan note number jadi angka 0011 1100 menunjukan kita sedang menekan note number 60 atau middle C karena 4+8+16+32 = 60
Data byte 2 menunjukan velocity (kekerasan)
0000 0000 ----à tidak nyala atau sangat pelan
0111 1111 ----à sangat keras
Ingat status byte selalu diawali dengan angka 1  dan data byte diawali angka 0 (dari sononya). Jadi bila ada angka binary dari sebuah MIDI data seperti ini 1001 000 0011 1100 0111 1111 kita sudah dapat membacanya menjadi = not on, di channel 1, note number 60 dan velocity sangat keras
Segitu dulu nanti kita bahas lebih lanjut MIDI untuk sinkronisasi ya...