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
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...