Senin, 23 Maret 2009

Musical Instrument Digital Interface

Tahun 1981 Dave Smith melalui papernya di Audio Engineering Society memaparkan proposal Musical Instrument Digital Interface, sebuah protokol digital untuk pertukaran data musik. Melalui MIDI instrumen elektrik/digital bisa saling bertukar data, contoh sederhananya kita menulis not balok dalam software di PC dan menyambungkan port MIDI ke keyboard elektrik (bukan keyboard komputer) sehingga not-not musik langsung dimainkan oleh keyboard tersebut.

Selain not nada diatonis yang ditulis MIDI juga mendefinisikan instrumen yang harus dimainkan. Jumlah channel pada General MIDI ada 128 channel, jadi kita bisa menulis lagu dengan 128 instrumen sekaligus. Channel ini sebenarnya tidak dibuat standar misalnya channel 1 harus suara piano atau channel 73 harus suara suling, tapi terbuka bagi para musisi untuk mendefinisikannya sendiri, membuat suara sendiri atau bahkan memasukkan instrumen tersendiri.

Ketika produk kartu suara yang mendukung MIDI semakin banyak maka dibuatlah sebuah standar yang disebut General MIDI, yaitu menetapkan 128 suara instrumen untuk tiap-tiap channel dengan pertimbangan agar produsen dan konsumen MIDI bisa memainkan suara yang sama tanpa perlu mendefinisikan terlebih dahulu.

Sekitar tahun 1995/96 kartu suara di komputer umumnya hanya memiliki port MIDI eksternal, artinya software MIDI atau permainan/games yang memiliki suara MIDI hanya bisa dimainkan jika memiliki instrumen keyboard, kalaupun kartu suaranya memiliki kemampuan mengeluarkan suara MIDI ke speaker kualitasnya sangatlah jelek. Pernah juga saya mendapat software WinGroove dari Avianto yang bisa mengeluarkan MIDI ke suara aslinya, namun kerja prosesor (saat itu masih di prosesor kelas 100-150MHz) meningkat dengan delay yang meningkat tinggi. Saya sempat mengumpulkan berkas-berkas MIDI hingga puluhan megabytes (ya ya, dulu cukup besar karena kapasitas harddisk yang dipakai hanya 500MB hingga 1GB).

Kini kartu suara sudah banyak dilengkapi chip hardware MIDI synthesizer sehingga suara MIDI tanpa perlu instrumen eksternal bisa dimainkan langsung dengan kualitas suara yang semakin baik dan real-time karena menggunakan hardware terpisah (suara MIDI diproses di chip kartu suara, bukan di prosesor).

Synthesizer MIDI tanpa hardware khusus hingga kini masih dikembangkan, salah satunya adalah timidity, meskipun dengan kecepatan prosesor yang semakin tinggi namun kinerja prosesor masih tetap cukup besar untuk sekadar memainkan suara MIDI, memang delaynya prosesnya semakin mengecil.

Kartu suara yang memiliki MIDI synthesizer kini semakin murah, jelas lebih nyaman daripada membebani prosesor untuk memproduksi suara yang diperintahkan oleh not MIDI. Kumpulan suara untuk diproses oleh kartu suara MIDI disebut sebagai soundfont. SoundFont ini bisa cukup dipasang diharddisk dan akan dibaca oleh kartu suara ketika memainkan musik, tapi juga ada kartu suara yang memiliki memori khusus untuk menyimpan soundfont ini.

Para musisi digital banyak mengembangkan soundfont ini dengan target membuat berbagai macam suara alat musik dan meningkatkan kualitas suara dan efek mendekati suara asli instrumen itu sendiri.

Kartu suara di PC saya adalah SoundBlaster Live!, termasuk hardware legacy buatan Creative yang banyak dipakai setelah jenis SoundBlaster AWE. Kartu suara SoundBlaster Live! memang tidak memiliki memori khusus untuk menyimpan soundfont namun dengan menyimpan soundfont di harddisk sudah cukup buat saya.

Dengan menggunakan driver ALSA kartu suara SBLive fungsi synthesizer bisa dijalankan dengan menggunakan driver snd-emu10k1-synth (umumnya sistem operasi Linux hanya menjalankan driver snd-emu10k1 saja). Untuk melihat apakah kartu suara anda memiliki hardware MIDI synthesizer bisa dilakukan dengan cara melihat informasi lspci.
$ lspci
0000:02:0d.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
0000:02:0d.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 0a)

Hardware MIDI di atas bisa diaktifkan oleh driver snd-emu10k1-synth.

Untuk menggunakan soundfont ada satu utility lain yang harus diinstall yaitu awesfx. Kartu suara SBLive! menyertakan soundfont standar dengan nama file CT2MGM.SF2 (tahun 1999), CT4MGM.SF2 (2000) dan terakhir 8mbgmsfx.sf2 (2003) sebesar 7, 3MB. File ini bisa dikopi ke direktori soundfont Linux yaitu /usr/share/sounds/sf2 dan di-load dengan cara:
$ asfxload /usr/share/sounds/sf2/8mbgmsfx.sf2

Kini anda bisa memainkan berkas MIDI dengan cara:
$ aplaymidi --port=65 namafile.mid
Port 65 di atas didapat dari:

$ aplaymidi -l
Port Client name Port name
62:0 Midi Through Midi Through Port-0
64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3

Player lain yang lebih simple adalah playmidi. Saya belum mencari player yang sifatnya GUI, ada plugin XMMS namun itu plugin untuk timidity.

Soundfont lain yang cukup bagus saya temukan di internet, bebas dipergunakan untuk kepentingan personal nonkomersil dari Personal Copy, ada dua buah soundfont yaitu PC51f.sf2.gz (50MB) dan Unison.sf2.gz (20MB)

Satu berkas MIDI lagunya Level 42 yaitu Forever Now saya dengarkan lebih bagus menggunakan soundfont Personal Copy daripada menggunakan soundfont standar dari Creative.

MIDI pada telepon selular

Oh iya, anda ngoprek MIDI berarti anda juga bisa mengoprek polyphonic ringtone telepon selular anda, tinggal cari software untuk mengedit berkas MIDI dan masukkan ke dalam telepon selular anda, karena berkas MIDI gratis banyak bertebaran di internet, tinggal search saja!

Tidak ada komentar:

Posting Komentar