BAB II DASAR TEORI. Bab ini berisi hasil studi literatur yang meliputi penjelasan mengenai music

dokumen-dokumen yang mirip
BAB I PENDAHULUAN. MIDI (Musical Intrument Digital Interface) adalah protokol yang memungkinkan

PENCARIAN MELODI PADA FILE MIDI

APLIKASI PENULISAN NOT BALOK GUNA PENYUARAAN PIANO DAN VIOLIN

BAB III ANALISIS. Bab ini berisi penjelasan mengenai analisis sistem pencarian melodi pada file

BAB 1 PENDAHULUAN Latar Belakang

BAB V EVALUASI. Bab ini berisi penjelasan mengenai evaluasi terhadap sistem pencarian melodi

PENCARIAN MELODI PADA FILE MIDI. EddoFajarN

BAB III Analisis. Gambar III.1 Rancangan Pemrosesan

BAB 3 ANALISIS DAN PERANCANGAN

1. Pendahuluan Latar Belakang

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB V TEKNIK PERMAINAN

Unsur Musik. Irama. Beat Birama Tempo

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Program Konversi Berkas Not Angka Ke Format Musik MIDI

BAB IV Perancangan dan Implementasi

BAB I PENDAHULUAN. dari sudut struktual maupun jenisnya dalam kebudayaan. Dalam Kamus Besar Bahasa Indonesia (1990:602) Musik adalah ilmu atau

BAB I PENDAHULUAN. penting. Notasi musik merupakan media agar hasil karya musik seseorang

Studi dan Implementasi Steganografi pada Berkas MIDI

BAB 3 METODOLOGI PENELITIAN

Sistem Tonjur untuk Menentukan Pasangan Main Angklung ke Pemain dengan Memanfaatkan MusicXML

PANDUAN BELAJAR GUITAR PRO 5

Sistem Tonjur untuk Membantu Menentukan Pasangan Main Angklung ke Pemain dengan Memanfaatkan MusicXML

Pendeteksian Plagiarisme Musik dengan Algoritma Boyer- Moore

Perancangan dan Realisasi MIDI Drum Pad Menggunakan Mikrokontroler ATMega16. Design and Realization MIDI Drum Pad Using ATMega16 Microcontroller

Tes Teori Tambahan Pengganti Nilai Kurang pada Kegiatan Praktik

BAB IV RANCANGAN GENERATOR MELODI

BAB I PENDAHULUAN. pendukung berupa gagasan, sifat dan warna bunyi. Kendati demikian, dalam

Makalah. Teori Dasar Musik. Riko Repliansyah Anisa Purnama Sari. Riski Okta Mayasari. Dosen Pengampu: Pebrian Tarmizi,M.Pd Mata Kuliah : Seni Musik

Teknologi Multimedia. Suara dan Audio

Penerapan Algoritma Knuth-Morris-Pratt dalam Music Identification (Musipedia)

BAB 2 TINJAUAN PUSTAKA

Jurnal CoreIT, Vol.1, No.2, Desember 2015 ISSN: X (Cetak) Niky Fetra 1, Muhammad Irsyad 2 1,2

BAB III ANALISA MASALAH DAN PERANCANGAN SISTEM

PITCH INTERVAL SINYAL SENANDUNG UNTUK PENCARIAN LAGU PADA TANGGA NADA PENTATONIS DAN DIATONIS TUGAS AKHIR

NOTASI BALOK. Oleh: Inggit Sitowati

Studi dan Analisis Teknik-Teknik Steganografi Dalam Media Audio

CHORD-SCALE BLUES. Untuk MELODI IMPROVISASI - ARANSEMEN Djanuar Ishak, 2011

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

BAB 1 PENDAHULUAN. 1 Universitas Indonesia. Perolehan informasi musik...,aurora Marsye, FASILKOM UI, 2008

BAB 2 LANDASAN TEORI. Menurut Kamus Besar Bahasa Indonesia Dalam Jaringan, Musik adalah nada

BAB I PENDAHULUAN. pengenalan terhadap gelombang suara. Pengenalan gelombang suara yang sudah

PERANCANGAN APLIKASI PEMBELAJARAN NOTASI MUSIK PIANO UNTUK MELATIH MENINGKATKAN KECERDASAN MANUSIA MENGGUNAKAN VISUAL BASIC 6.0

BAB I PENDAHULUAN. Analisis merupakan salah satu kemampuan yang harus dimiliki oleh

PERANCANGAN SISTEM PENGENALAN NADA TUNGGAL KEYBOARD (ORGEN) PADA PC BERBASIS MATLAB

Oleh : Teguh Budiawan. Mengenal dasar. not balok. modul pengantar belajar awal tahun ajaran hingga ujian tengah semester

BAB IV. ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB II LANDASAN TEORI. yaitu irama, melodi, harmoni, bentuk atau struktur lagu dan ekspresi.

BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI. membangun aplikasi transposisi akord lagu berbasis android. parameter dalam

PENDAHULUAN Tujuan Latar Belakang Ruang Lingkup Manfaat Penelitian TINJAUAN PUSTAKA Nada dan Chord Gitar

GarageBand 11. GarageBand adalah program aplikasi di Apple untuk merekam, menyusun, dan share musik digital

BAB I PENDAHULUAN I - 1

BAB II PENGOLAHAN AUDIO DENGAN FL STUDIO

TRIK MEMBACA NOTASI BALOK

BAB I PENDAHULUAN. suara, video, animasi, virtual 3D, dan sebagainya bisa diakses bisa diakses kapan

BAB III ANALISIS KOMPOSISI

... BAB 2 LANDASAN TEORI. 2.1 Citra

ABSTRAK. Kata kunci: biola, Fast Fourier Transform, konversi, nada, not balok. vi Universitas Kristen Maranatha

BAB II Dasar Teori. 2.1 Algoritma Genetika Gambaran Umum

Optimasi Konversi String Biner Hasil Least Significant Bit Steganography

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Oxford University, 1997), Dieter Mack, Apresiasi Musik Musik Populer (Yogyakarta : Yayasan Pustaka Nusatama,

TUGAS PLPG PEMBUATAN MODUL PEMBELAJARAN

PENERJEMAH FILE MUSIK BEREKSTENSI WAV KE NOT ANGKA. Albertus D Yonathan A / ABSTRAK

Penerapan akor pokok dalam tangga nada mayor 1# - 7# pada pianika

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Tree Dalam Penulisan Notasi Musik Dengan Notasi Angka yang Disederhanakan

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB IV HASIL DAN PEMBAHASAN. database dan database query, secara keseluruhan menggunakan cara yang sama.

Versi Firmware 1.21 Pedoman Pemakaian

BAB III ANALISA MASALAH DAN PERANCANGAN SISTEM

Stenografi dan Watermarking. Esther Wibowo Erick Kurniawan

BAB I PENDAHULUAN. berbeda.

BAB 3 ANALISIS DAN PERANCANGAN

Versi Firmware 1.10 Pedoman Pemakaian

Muhamad Zulkhaidir Faruqi APLIKASI GAME EDUKASI VIRTUAL ANGKLUNG BERBASIS DEKSTOP

OPTIMASI KONVERSI STRING BINER HASIL LEAST SIGNIFICANT BIT STEGANOGRAPHY (LSB)

Pengantar Komunikasi Data. Muhammad Zen Samsono Hadi, ST. MSc. Lab. Telefoni Gedung D4 Lt. 1

BAB III ANALISIS KARYA

STMIK AMIKOM YOGYAKARTA. Oleh : Nila Feby Puspitasari

PENENTUAN AKOR GITAR DENGAN MENGGUNAKAN ALGORITMA SHORT TIME FOURIER TRANSFORM

RENCANA PELAKSANAAN PEMBELAJARAN 1

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB III METODE PENELITIAN

BAB 3 METODOLOGI PENELITIAN. kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik

BAB III ANALISIS KARYA

BAB III ANALISIS KOMPOSISI

BAB I PERSYARATAN PRODUK

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

SISTEM PENGENALAN CHORD PADA FILE MUSIK DIGITAL DENGAN MENGGUNAKAN PITCH CLASS PROFILES DAN HIDDEN MARKOV MODEL. Ivanna K. Timotius, Adhi Prayogo

Kompetensi Dasar : 1. mampu mendeskripsikan tentang sumber-sumber bunyi 2. mampu mendeskripsikan tentang penalaan

BAB IV PERANCANGAN DAN IMPLEMENTASI

BAB III ANALISIS DAN PERANCANGAN

* Kriptografi, Week 13

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

yaitu dalam ketepatan pengenalan pola berdasarkan kelas untuk menampilkan genre.

Transkripsi:

BAB II DASAR TEORI Bab ini berisi hasil studi literatur yang meliputi penjelasan mengenai music information retrieval dan aspek-aspek apa saja yang dapat digunakan untuk mendefinisikan music information retrieval, penjelasan mengenai file MIDI dan spesifikasinya serta penjelasan mengenai metode konversi melodi polifonik menjadi melodi monofonik. II.1 Music Information Retrieval Music Information retrieval (MIR) adalah disiplin ilmu yang merupakan gabungan antara information retrieval (IR) dan musik. Tujuan MIR adalah untuk mencari lagu yang relevan dengan sebuah query tertentu. Gambaran umum sebuah sistem MIR dapat dilihat pada Gambar 2.1. Query Pencarian Daftar lagu yang relevan Koleksi lagu Gambar 2.1 Gambaran Umum Sistem Music Information Retrieval II - 1

Pada gambar di atas, query dapat berupa melodi, genre lagu, lirik, tempo, irama dan sebagainya. Lagu-lagu dalam koleksi lagu dapat disimpan dalam berbagai macam format file audio, misalnya wav, mp3, MIDI, real audio dan sebagainya. MIR dapat dibagi dalam tujuh aspek, yaitu [7]: 1. Aspek nada (pitch). Nada dapat didefinisikan sebagai bunyi yang dapat dinyatakan sebagai fungsi frekuensi tertentu, dalam satuan getaran per detik. Representasi nada yang paling dikenal orang adalah representasi dengan not balok yang tertulis pada sebuah partitur musik. Representasi nada lainnya antara lain: nama not (A, B, C# dan seterusnya), derajat tangga nada (I, II, III dan seterusnya), solmisasi (do, re, mi dan seterusnya) dan not angka (1, 2, 3 dan seterusnya). Jarak antara dua nada disebut interval. Satuan interval biasanya dinyatakan dalam ukuran semitone. Ukuran interval berbeda-beda, mulai dari interval yang berjarak setengah nada (1 semitone) sampai interval berjarak satu oktaf (12 semitone). Melodi dapat didefinisikan sebagai kumpulan nada atau interval yang dimainkan secara sekuensial dan terurut. Nada dasar (key) dapat digolongkan ke dalam aspek nada. Melodi CDEFGEC (dari lagu Ibu Kita Kartini ) pada nada dasar C dianggap ekivalen dengan melodi GABCDBG pada nada dasar G. Ini terjadi karena kontur melodi (pola interval) pada kedua melodi tersebut sama meskipun dimainkan pada nada dasar yang berbeda. 2. Aspek temporal. Aspek temporal meliputi informasi mengenai event-event musikal dalam durasi suatu lagu, yaitu tempo, tanda birama, panjang nada, II - 2

panjang harmoni dan aksen. Kelima elemen ini merupakan komponen-komponen ritmik dari sebuah lagu.. Informasi temporal dari sebuah lagu dapat bersifat pasti (contoh: tempo = 120 BPM), umum (contoh : adagio, presto, allegro) atau relatif (contoh: schneller, langsamer). Perubahan informasi temporal juga kadangkadang muncul pada sebuah lagu (contoh: rubato, accelerando). Karena aspek temporal meliputi banyak elemen, maka aspek temporal dapat direpresentasikan dengan berbagai macam cara. 3. Aspek harmoni. Harmoni adalah sekumpulan nada yang berbeda-beda yang dibunyikan secara bersamaan. Sebuah melodi bersifat polifonik jika pada suatu saat ada lebih dari satu nada yang dibunyikan secara bersamaan. Jika nada-nada dalam suatu melodi dimainkan secara satu per satu, maka melodi tersebut bersifat monofonik. Sebuah harmoni dapat dinyatakan sebagai kombinasi beberapa interval dari suatu nada root. Harmoni yang terdiri dari tiga nada atau lebih disebut akor (chord). Urutan akor yang dimainkan pada sebuah lagu disebut pergerakan akor (chord progression). Akor dapat direpresentasikan secara absolut (C, G, Am dan sebagainya) atau relatif (I, V, vi dan sebagainya). 4. Aspek timbral. Perbedaan suara yang ditimbulkan dari not yang sama yang dimainkan oleh dua alat musik yang berbeda disebabkan oleh perbedaan warna suara pada kedua alat musik tersebut. Aspek timbral meliputi informasi mengenai orkestrasi lagu, yaitu penentuan alat musik apa saja yang dimainkan pada sebuah lagu. Aspek timbral juga meliputi cara memainkan suatu alat musik (contoh: II - 3

pizzicatto, muting, menekan pedal dan sebagainya). Aspek timbral paling cocok untuk digunakan dalam representasi lagu yang bersifat signal-based. 5. Aspek editorial. Aspek editorial meliputi tatacara memainkan suatu lagu seperti penjarian, dinamika (contoh: forte, piano, fortissimo), artikulasi, staccatto dan sebagainya. Aspek editorial sulit untuk direpresentasikan dalam MIR sebab informasi editorial pada umumnya tdak bersifat absolut. 6. Aspek tekstual. Aspek tekstual meliputi lirik dari suatu lagu. Aspek tekstual pada umumnya tidak bergantung pada aspek-aspek lainnya dalam MIR. Sebuah lagu bisa saja memiliki beberapa versi lirik yang berbeda-beda. Misalnya, lagu God Save The Queen, yang dikenal sebagai lagu kebangsaan negara-negara persemakmuran Inggris, juga dikenal sebagai lagu America atau My Country tis of Thee di Amerika Serikat. Sebuah lagu juga dapat diterjemahkan ke dalam bahasa yang berbeda-beda, misalnya lagu Happy Birthday. 7. Aspek bibliografi. Aspek bibliografi meliputi judul lagu, pencipta lagu, editor, penulis lirik, penerbit, edisi, nomor katalog, tanggal publikasi, diskografi dan sebagainya. Tidak seperti aspek MIR lainnya, aspek bibliografi tidak diperoleh dari content sebuah lagu. Biasanya informasi mengenai aspek bibliografi terdapat di dalam tag atau metadata dari suatu file lagu. II.2 Perkembangan Music Information Retrieval Music information retrieval adalah disiplin ilmu yang relatif baru. Pada awalnya orang melakukan pencarian terhadap sebuah lagu berdasarkan tag metadata berbasis teks yang mengidentifikasi fitur-fitur tertentu, misalnya judul atau pencipta lagu. Pencarian II - 4

seperti ini menyulitkan bagi orang yang tidak tahu isi dari metadata yang akan dicari. Ada kalanya seseorang tidak mengetahui metadata dari sebuah lagu tapi mengetahui fitur-fitur lainnya seperti melodi, instrumentasi atau harmonisasi dari lagu tersebut. Akan lebih baik jika pencarian pada terhadap sebuah lagu dilakukan berdasarkan isi (content based) dari lagu tersebut. Inilah yang melatarbelakangi lahirnya music information retrieval. Pencarian terhadap sebuah lagu secara content based pertama kali dilakukan berdasarkan melodi dari lagu tersebut. Aplikasi Themefinder [8], yang disponsori oleh Stanford University, menyimpan sekitar 20,000 lagu klasik, barok, renaissance dan lagulagu rakyat (folk song) Eropa. Pengguna melakukan pencarian terhadap sebuah lagu dengan cara memasukkan informasi mengenai kontur melodi pada sebuah antarmuka berbasis teks. Aplikasi Meldex [9], yang merupakan projek dari University Of Waikato, Selandia Baru, menyimpan sekitar 9,000 lagu rakyat Cina dan Eropa. Pengguna melakukan pencarian dengan cara memainkan melodi masukan pada sebuah kibord maya di halaman web Meldex. Meldex akan mengembalikan lagu-lagu yang dianggap memiliki melodi yang mirip dengan melodi masukan yang terurut berdasarkan kemiripan kepada pengguna. Aplikasi Shazam [11] melakukan pencarian dengan cara query by example. Pengguna memasukkan sampel lagu selama 10 detik. Shazam mengembalikan lagu-lagu yang mirip dengan sampel tersebut. Sampai saat ini pencarian terhadap sebuah lagu yang bersifat content based baru dilakukan berdasarkan melodi. Pada masa yang akan datang, diramalkan bahwa pencarian terhadap sebuah lagu dapat dilakukan berdasarkan aspekaspek lain seperti instrumentasi, harmoni, lirik, tanda birama, genre dan sebagainya. II - 5

II.3 Pencarian Melodi Metode-metode yang digunakan untuk pencarian melodi dapat dibagi dalam tiga kategori, yaitu: 1. Pencarian melodi berbasis index term. Pengindeksan dapat meningkatkan performansi sebuah sistem IR karena semua informasi yang relevan sudah dibangkitkan secara offline. Operasi pencarian dilakukan dengan cara membandingkan query dengan indeks-indeks dalam sebuah dokumen. Pencarian dengan metode ini juga dapat diterapkan pada sebuah sistem MIR. Indeks dalam hal ini dapat dianalogikan dengan potongan melodi yang diekstraksi dari sebuah lagu. Salah satu metode ekstraksi melodi yang paling banyak digunakan adalah metode N-gram, yaitu dengan mengelompokkan setiap N nada yang berurutan menjadi satu segmen melodi. S. Downie dan M. Nelson [12], mencoba melakukan eksperimen dengan mengekstraksi lagu-lagu rakyat menjadi potongan-potongan melodi dengan metode N-gram. Eksperimen ini menghasilkan hasil pencarian yang bagus untuk query yang panjang. S. Doraisamy dan G. Widmer [13] mencoba melakukan pencarian melodi terhadap lagu-lagu polifonik dengan metode N-gram tanpa melakukan konversi ke melodi monofonik 2. Pencarian melodi berbasis sequence matching. Pada pencarian melodi berbasis sequence matching, melodi direpresentasikan dengan deretan angka-angka. Pencarian dilakukan dengan membandingan query dengan deretan angka-angka tersebut. II - 6

Salah satu metode pencarian melodi berbasis sequence matching adalah dengan memperhatikan kontur melodi. Perpindahan dari satu nada ke nada lain dapat dibagi menjadi tiga jenis, yaitu: menaik, menurun dan tetap. A. Ghias, J. Logan, D. Chamberlain dan B.C. Smith [14] menggunakan metode ini untuk menangani ketidakcocokan yang mungkin timbul antara query yang dimasukkan dengan cara humming dengan lagu-lagu yang dibandingkan. Metode lain yang berbasis sequence matching adalah dengan cara menghitung edit distance. Edit distance antara dua melodi dapat didefinisikan sebagai jumlah minimum biaya (cost) yang diperlukan untuk mentransformasikan melodi sumber menjadi melodi sasaran dengan operasi-operasi penyuntingan yang tersedia. Operasi-operasi penyuntingan pada umumnya meliputi: - Penyisipan, yaitu menyisipkan sebuah nada ke melodi sasaran. - Penghapusan, yaitu menghapus sebuah nada dari melodi sumber. - Penggantian, yaitu mengganti sebuah nada pada melodi sumber dengan nada dari melodi sasaran. Pada umumnya, pencarian melodi berbasis sequence matching hanya memperhatikan pitch dan durasi nada. M. Robine, P. Hanna dan P. Ferraro [15] mencoba memperbaiki hasil pencarian dengan menghitung edit distance antara dua buah melodi dengan cara memperhitungkan elemen-elemen musik lainnya seperti tonalitas dan irama. 3. Pencarian melodi berbasis geometry matching. Pada pencarian melodi berbasis geometry matching, pembandingan melodi dilakukan dengan cara mentranslasikan query dengan melodi yang direpresentasikan secara geometrik. II - 7

Representasi melodi secara geometrik yang paling sering digunakan orang adalah representasi piano roll. Pada representasi piano roll, melodi dipetakan ke dalam diagram fungsi pitch terhadap waktu. II.4 File MIDI MIDI adalah singkatan dari Musical Instrument Digital Interface dan sangat populer di kalangan musisi sejak ditemukan pertama kali pada tahun 1983. MIDI merupakan suatu protokol komunikasi yang memungkinkan alat-alat musik elektronik berkomunikasi satu sama lain. MIDI merupakan salah satu protokol yang paling efisien untuk merepresentasikan informasi musik. Hal ini menyebabkan protokol MIDI tidak hanya bermanfaat bagi para musisi, melainkan juga untuk aplikasi komputer yang menghasilkan suara seperti multimedia atau game. SMF (Standard MIDI File) adalah format file yang dirancang khusus untuk menyimpan data yang dimainkan atau direkam oleh sebuah alat musik, baik yang berbasis perangkat keras maupun yang berbasis perangkat lunak. Sebuah file MIDI menyimpan event yang mengatur nada-nada yang dimainkan, pemilihan alat musik yang dimainkan, tempo, tanda birama, tanda kunci dan sebagainya. Sebuah file MIDI menyimpan event yang menyatakan nada-nada yang dimainkan dalam beberapa channel. Sebuah file MIDI dapat menampung hingga 16 channel. Selain itu, file MIDI.juga dapat menyimpan informasi-informasi musik lainnya (termasuk nada-nada yang dimainkan pada sebuah channel tertentu) dalam beberapa track. Sebuah file MIDI dapat menampung hingga 65025 track. Sebuah track dapat dianalogikan dengan satu bagian dalam musik, II - 8

seperti bagian trompet. Sebuah pattern dapat dianalogikan dengan semua bagian musik (trompet, piano, drum, dan sebagainya) pada sebuah lagu. Format SMF dirancang segenerik mungkin agar alat musik elektronik manapun dapat membaca atau membuat file dengan format SMF tanpa harus kehilangan data-data yang terpenting. Format SMF juga dirancang sefleksibel mungkin agar sebuah alat musik dapat menyimpan data yang hanya dapat dimengerti oleh alat musik itu sendiri dan tidak perlu dibaca oleh alat musik lain. II.4.1 Chunk Data dalam file MIDI tersimpan dalam satuan-satuan yang disebut chunk. Sebuah file MIDI dapat menyimpan beberapa chunk. Setiap chunk memiliki ukuran yang berbeda-beda. Sebuah chunk adalah kumpulan dari byte-byte yang saling berhubungan. Sebuah file MIDI diawali dengan chunk MThd (header) diikuti oleh beberapa chunk MTrk (track). Struktur umum file MIDI dapat dilihat pada Tabel 2.2. Tabel 2.2 Struktur File MIDI Chunk MThd Chunk MTrk Chunk MTrk Chunk MTrk Semua chunk diawali dengan ID sepanjang empat karakter (empat byte ASCII) yang menunjukkan tipe chunk tersebut. Empat byte berikutnya menunjukkan panjang II - 9

chunk. Semua chunk harus dimulai dengan chunk header seperti di atas, yaitu jenis chunk diikuti dengan panjang chunk tersebut. Panjang chunk tidak mencakup delapan byte pertama pada chunk tersebut. Panjang chunk menyatakan jumlah byte yang terdapat dalam chunk tersebut setelah delapan byte pertama. Di bawah ini adalah contoh chunk header (byte direpresentasikan dalam bentuk heksadesimal): 4D 54 68 64 00 00 00 06 Pada contoh di atas, empat byte pertama jika diterjemahkan dalam ASCII akan menjadi MThd. Empat byte berikutnya menunjukkan bahwa ada 6 byte setelah chunk header tersebut. Semua file MIDI diawali dengan header MThd. Kita dapat mengetahui apakah sebuah file merupakan file MIDI atau bukan dengan melihat empat byte pertama pada file tersebut. II.4.1.1 Chunk MTHd (Header) Sebuah chunk MThd memiliki ID chunk MThd dan panjang chunk sebesar 6 byte. Empat byte pertama dari chunk MThd adalah 4D 54 68 64 yang merupakan representasi ASCII dari M, T, h dan d. Empat byte berikutnya adalah 00 00 00 06 (panjang chunk MThd selalu 6 byte). Enam byte berikutnya terdiri atas informasiinformasi berikut: 1. Dua byte pertama menunjukkan format file MIDI. 00 00 menunjukkan format 0 00 01 menunjukkan format 1 00 10 menunjukkan format 2 II - 10

Pada format 0, file MIDI terdiri dari satu track dengan 16 channel. Pada format 1, file MIDI terdiri dari satu atau beberapa track yang dimainkan pada saat yang bersamaan. Pada format 2, file MIDI terdiri dari satu atau beberapa track yang dimainkan secara independen. Untuk keperluan tesis ini hanya akan digunakan file MIDI dengan format 0 dan 1. 2. Dua byte berikutnya menunjukkan banyaknya track dalam file. Pada file MIDI format 0, dua byte ini selalu 00 01 (1 track), sedangkan pada file MIDI format 1 atau 2, jumlah track bisa berbeda-beda. 3. Dua byte terakhir berisi jumlah pulsa per not seperempat (Pulse per Quarter Note / PPQN). Misalnya, jika alat musik yang digunakan memiliki 96 PPQN, maka dua byte ini akan berisi 00 60. Di bawah ini adalah contoh chunk MThd: 4D 54 68 64 ID MThd 00 00 00 06 Panjang chunk MThd selalu 6 byte 00 01 File MIDI format 1 00 02 Ada 2 chunk MTrk dalam file MIDI 00 60 Ada 96 pulsa pada setiap not seperempat II.4.1.2 Chunk MTrk (Track) Chunk MThd diikuti oleh chunk MTrk. File MIDI format 0 hanya memiliki satu chunk MTrk, sedangkan file MIDI format 1 atau 2 dapat menampung hingga 65025 chunk MTrk. II - 11

Header dari chunk MTrk selalu diawali dengan ID MTrk, diikuti dengan panjang chunk MTrk tersebut. Setiap chunk MTrk memiliki panjang yang berbeda-beda. Sebuah chunk MTrk berisi instruksi-instruksi dan informasi-informasi yang dibutuhkan untuk memainkan musik pada satu track. Instruski-instruksi ini diesbut event dan dinyatakan dengan kode biner tertentu. II.4.1.3 Variable Length Quantity Variable length quantity merupakan suatu bentuk penyimpanan beberapa jenis data pada file MIDI. Variable length quantity terdiri dari sekumpulan byte yang berurutan dan pada tiap byte hanya 7 bit terakhir yang signifikan (bit kedua sampai bit kedelapan). Jika suatu byte adalah byte terakhir, maka bit pertama byte tersebut bernilai 0. Jika byte tersebut bukan byte terakhir, maka bit pertama bernilai 1. Contoh reprersentasi angka pada variable length quantity dapat dilihat pada Tabel 2.3. Tabel 2.3 Beberapa Representasi Angka Pada Variable Length Quantity Angka Variable Length Quantity Angka Variable Length Quantity 00000000 00 00003FFF 7F 00000040 40 00004000 81 80 00 00000080 81 00 00100000 C0 00 80 00002000 C0 00 0FFFFFFF FF FF FF 7F II.4.2 Event Event adalah informasi yang menunjukkan pemilihan tempo, alat musik yang dimainkan, instruksi untuk membunyikan nada dan sebagainya. Sebuah event pada file II - 12

MIDI selalu didahului oleh waktu terjadinya event tersebut (delta time). Delta time adalah durasi antara sebuah event dengan event sebelumnya. Waktu terjadinya sebuah event diacu dari waktu terjadinya event sebelumnya. Misalnya jika sebuah event muncul 4 satuan waktu setelah event sebelumnya, maka event tersebut memiliki delta time 04. Jika sebuah event muncul bersamaan dengan event sebelumnya, maka event ini memiliki delta time 00. Karena semua track dimulai dari waktu 0, maka delta time untuk event pertama diacu dari 0. Delta time disimpan dalam bentuk variable length quantity. Data yang tersimpan pada sebuah chunk MTrk adalah deretan event dan delta time dari event tersebut. Jadi sebuah chunk MTrk memiliki skema seperti di bawah ini: ID MTrk Panjang chunk MTrk delta time event delta time event delta time event. delta time event delta time - end of chunk. Event dapat dibagi menjadi tiga kategori yaitu MIDI event, meta event dan SysEx event. II.4.2.1 MIDI Event MIDI event merupakan event-event yang berhubungan dengan cara membunyikan sebuah nada. MIDI event diawali dengan byte dari 80 sampai EF. Empat bit pertama pada byte ini menunjukkan jenis event, sedangkan empat bit terakhir menunjukkan II - 13

channel tempat event tersebut terjadi. Event-event yang tergolong dalam MIDI event dapat dilihat dalam Tabel 2.4. Tabel 2.4 Jenis-jenis MIDI Event Status Jumlah byte data setelah status Jenis 80 8F 2 Note Off 90 9F 2 Note On A0 AF 2 After Touch B0 BF 2 Controller C0 CF 1 Program Change D0 DF 1 Channel Pressure E0 EF 2 Pitch Wheel Ada 7 jenis MIDI event, yaitu : 1. Note Off, berfungsi untuk menghentikan bunyi suatu nada. Event ini diikuti oleh dua byte. Byte pertama menyatakan nomor nada (0 127), byte kedua menunujukkan besarnya tekanan (0-127) pada nada tersebut (velocity). 2. Note On, berfungsi untuk membunyikan suatu nada. Event ini diikuti oleh dua byte. Byte pertama menyatakan nomor nada (0 127), byte kedua menunujukkan besarnya velocity (0 127) pada nada tersebut. Event note off juga dapat dinyatakan dengan event note on yang memiliki velocity nol. 3. After Touch, berfungsi untuk mengubah nilai velocity suatu nada. Event ini diikuti oleh dua byte. Byte pertama menyatakan nomor nada (0 127), byte kedua menunujukkan besarnya velocity (0 127) pada nada tersebut. II - 14

4. Controller, berfungsi untuk mengubah nilai sebuah kontrol tertentu. Event ini diikuti oleh dua byte. Byte pertama menyatakan jenis kontrol (0 127), byte kedua menunujukkan nilai kontrol (0 127). 5. Program Change, berfungsi untuk mengubah jenis suara atau alat musik. Event ini diikuti oleh satu byte data yang menyatakan nomor alat musik (0 127). 6. Channel Pressure, berfungsi untuk mengubah tekanan (pressure) pada sebuah channel. Event ini diikuti oleh satu byte data yang menunjukkan nilai tekanan (0 127). 7. Pitch Wheel, berfungsi untuk mengubah nilai pitch. Event ini diikuti oleh dua byte data yang menyatakan nilai pitch (0 127). Selain itu, terdapat pula sebuah event yang disebut running status. Event ini merupakan lanjutan dari event sebelumnya dan digunakan untuk mengurangi jumlah byte jika terjadi event dengan jenis yang sama secara berurutan. Sebuah event yang dinyatakan dengan running status dapat dikenali dari byte setelah delta time yang bernilai antara 00 sampai dengan 7F. II.4.2.2 Meta Event Meta event berisi informasi-informasi seperti tanda birama (time signature), tanda kunci (key signature), tanda akhir dan sebagainya. Meta event pada umumnya bersifat optional, tapi ada juga meta event yang harus ada pada setiap chunk MTrk. Meta Event selalu diawali dengan byte FF. Semua meta event didahului dengan delta time seperti event-event lainnya sehingga kita dapat mencampur aduk MIDI event dengan meta event. Beberapa jenis meta event dapat dilihat pada Tabel 2.5. II - 15

Tabel 2.5 Beberapa Jenis Meta Event Status Nama Data Keterangan 00 02 Nomor sequencer ss ss 01 Teks len text 02 Hak cipta len text 03 Nama track len text 04 Nama instrumen len text 05 Lirik len text 06 Penanda len text 07 Cue point len text Len menunjukkan banyaknya byte pada text (variable length quantity) 20 01 MIDI channel cc cc = nomor channel 21 01 MIDI port pp pp = nomor port 51 03 Tempo tt tt tt tt tt tt = tempo lagu 54 05 SMPTE offset hh mm ss fr ff Menunjukkan waktu awal SMPTE 58 04 Tanda birama nn dd cc bb 59 02 Tanda kunci sf mi nn = pembilang dd = penyebut cc bb = nilai metronom sf = banyaknya kres/mol pada tanda kunci mi = mayor/ minor 2F 00 Akhir track Semua chunk MTrk harus diakhiri dengan event ini Berikut ini penjelasan mengenai meta event yang tercantum pada Tabel 2.5: 1. Nomor sequence. Event ini terjadi pada awal track sebelum terdapat delta time yang tidak nol dan sebelum terdapat event MIDI lainnya. Event ini menunjukkan nomor dari sebuah sequence. Event ini memiliki format FF 00 02 ss ss. Dua byte data ss ss menyatakan angka yang berhubungan dengan nomor sequece pada pesan MIDI Cue. II - 16

2. Teks. Event ini menampung teks yang dapat mendeskripsikan sesuatu. Dalam hal ini, teks harus berupa karakter ASCII yang dapat dicetak agar mudah dibaca. Event ini memiliki format FF 01 <len> <text>. len adalah jumlah byte yang terdapat dalam text dan dinyatakan dalam bentuk variable length quantity. 3. Hak cipta. Event ini berisi catatan hak cipta berupa teks ASCII yang dapat dicetak dan harus mengandung karakter, tahun hak cipta serta pemilik hak cipta. Event ini harus menjadi event pertama dalam chunk MTrk pertama pada waktu 0. Event ini memiliki format FF 02 <len> <text>. 4. Nama track. Event ini menunjukkan nama sequence pada file MIDI format 0 atau track pertama pada file MIDI format 1. Pada track lain, event ini menunjukkan nama track. Event ini memiliki format FF 03 <len> <text>. 5. Nama instrumen. Event ini mendeskripsikan tipe instrumen yang akan digunakan pada sebuah track. Event ini memiliki format FF 04 <len> <text>. 6. Lirik. Event ini berisi lirik lagu yang terdapat pada file MIDI. Event ini memiliki format FF 05 <len> <text>. 7. Penanda. Event ini memberi nama pada sebuah titik pada sequence. Event ini terdapat pada file MIDI format 0 atau track pertama file MIDI format 1. Event ini memiliki format FF 06 <len> <text>. 8. Cue point. Event ini mendeskripsikan sesuatu yang terjadi pada sebuah film atau layar video ketika partitur musik mencapai titik tersebut. Event ini memiliki format FF 07 <len> <text>. 9. MIDI channel. Event ini merupakan event tambahan yang biasanya terdapat pada awal track, yaitu sebelum delta time tidak nol dan sebelum meta event apapun II - 17

kecuali event nomor sequence. Event ini berfungsi untuk menentukan channel yang akan digunakan oleh meta event atau system exclusive berikutnya. Event ini memiliki format FF 20 01 cc. Byte data cc menunjukkan nomor channel. 10. MIDI port. Event ini juga merupakan event tambahan, biasanya terdapat pada awal track sebelum delta time tidak nol dan sebelum event lainnya. Event ini berfungsi menspesifikasikan MIDI Port tempat mengirimkan event-event MIDI pada sebuah track. Event ini memiliki format FF 21 01 pp. Byte data pp menunjukkan nomor port, dengan 0 sebagai port pertama pada sistem MIDI. 11. Tempo. Event ini menunjukkan perubahan tempo. Event ini memiliki format FF 51 03 tt tt tt. Tiga byte data tt menunjukkan lamanya satu not seperempat dalam satuan mikrodetik. Misalnya jika byte data adalah 07 A1 20, maka setiap not seperempat memiliki panjang 07A120 heksadesimal atau 500000 mikrodetik. 12. SMPTE offset. Event ini menetapkan waktu SMPTE ketika chunk MTrk seharusnya dimulai. Event ini memiliki format FF 54 05 hh mm ss fr ff. Byte data hh menunjukkan jam, mm menunjukkan menit, ss menunjukkan detik, fr menunjukkan frame dan ff berisi fractional frame dalam satuan 1/100 frame. Event ini terletak pada awal track sebelum delta time tidak nol dan sebelum ada event MIDI lainnya. 13. Tanda birama. Event ini mendefinisikan besaran tanda birama (time signature) yang diwakili oleh empat angka. Event ini memiliki format FF 58 04 nn dd cc bb. Byte data nn dan dd menunjukkan pembilang (numerator) dan penyebut (denumerator) dari tanda birama. Penyebut adalah pangkat negatif dari 2, II - 18

misalnya 2 = not seperempat, 3 = not seperdelapan dan seterusnya. Byte data cc menunjukkan jumlah clock MIDI dalam sebuah metronome click. Byte data bb menunjukkan jumlah not 1/32 dalam sebuah not seperempat. Event ini memungkinkan seseorang untuk mendefinisikan not seperempat dalam arti lain. Misalnya, birama 6/8 dengan metronome click pada setiap 3 not seperdelapan dan 24 clock per not seperempat dinyatakan oleh event FF 58 04 06 03 18 08. 14. Tanda kunci. Event ini mendefinisikan tanda kunci yang digunakan dalam lagu. Event ini memiliki format FF 59 02 sf mi. Byte data sf menunjukkan jumlah kres jika bernilai positif atau jumlah mol jika bernilai negatif. Byte data mi bernilai 0 untuk tanda kunci major, 1 untuk tanda kunci minor. 15. Data khusus. Event ini dapat digunakan untuk menyimpan data yang hanya dapat dibaca oleh program tertentu. Byte-byte awal (pada umumnya 4 byte awal) sebaiknya memuat identitas unik sehingga sebuah program dapat menentukan apakah event ini diperlukan atau tidak. Event ini memiliki format FF 7F <len> <text>. 16. Akhir track. Event ini menandakan akhir dari sebuah chunk MTrk. Semua chunk MTrk harus diakhiri dengan event ini dan event ini hanya boleh muncul sekali pada tiap chunk MTrk. Event ini memiliki format FF 2F 00. II.4.2.3 SysEx Event SysEx adalah singkatan dari System Exclusive. Event ini fungsinya terbatas, tergantung pada pabirk alat musiknya. Pabrik alat musik yang berbeda akan menghasilkan alat musik dengan SysEx event yang berbeda pula. Sebuah SysEx event II - 19

diawali dengan byte F0 dan diakhiri dengan byte F7. Event ini digunakan untuk menspesifikasikan pesan SysEx yang menunjukkan byte-byte data yang harus ditransmisikan. II.4.3 Representasi Durasi Nada Durasi suatu nada didefinisikan sebagai beda waktu antara event note on dengan event note off pada nada tersebut. Untuk mengetahui beda waktu ini digunakan informasi jumlah PPQN dengan rumus sebagai berikut: Jumlah durasi not seperempat = beda waktu / PPQN Pada umumnya musisi mendefinisikan istilah tempo sebagai jumlah not seperempat yang terjadi setiap menit. Misalnya, pada lagu dengan tempo 100 BPM ada 100 not seperempat dalam satu menit. Pada file MIDI, tempo diperoleh dari meta event yang menyatakan tempo dalam bentuk data 3 byte (tt tt tt). Tiga byte tersebut menyatakan durasi sebuah not seperempat dalam satuan mikrodetik. Untuk mengonversi tempo pada file MIDI dalam bentuk tt tt tt menjadi BPM, digunakan rumus di bawah ini: BPM = 60000000/(tttttt) Sebagai contoh, tempo 120 BPM sama dengan 07A120 (heksadesimal) mikrodetik untuk setiap not seperempat. [6] II - 20

Byte MIDI clock dikirimkan melalui MIDI untuk melakukan sinkronisasi terhadap dua peralatan, misalnya satu peralatan menghasilkan MIDI clock pada suatu tempo yang dihitung secara internal sedangkan peralatan lain melakukan sinkronisasi berdasarkan byte-byte MIDI clock tersebut. Untuk setiap not seperempat terdapat 24 MIDI clock. Oleh karena itu, panjang sebuah MIDI clock adalah tempo (dalam satuan mikrodetik) dibagi dengan 24. II.5 Konversi Melodi Polifonik Menjadi Melodi Monofonik Ada beberapa algoritma yang dapat digunakan untuk mengonversi melodi polifonik menjadi melodi monofonik, yaitu [3]: 1. Pada alternatif algoritma pertama, semua nada yang dibunyikan pada file MIDI digabungkan ke dalam satu kumpulan event. Jika ada beberapa nada yang dibunyikan pada saat bersamaan, maka nada yang dipilih adalah nada yang paling tinggi. Pada algoritma ini, panjang nada tidak diperhatikan. Jika kemudian ada kumpulan nada lain yang dibunyikan, maka nada yang dipilih adalah nada tertinggi dari kumpulan nada yang baru meskipun mungkin nada terpilih yang lama lebih tinggi daripada kumpulan nada yang baru. Sebagai contoh, melodi pada Gambar 2.7 adalah hasil penerapan algoritma ini terhadap melodi pada Gambar 2.6. Seperti terlihat pada Gambar 2.7, kelemahan algoritma ini adalah kemungkinan munculnya nada-nada tambahan yang tidak diinginkan. II - 21

Gambar 2.6 Contoh Melodi Gambar 2.7 Hasil Penerapan Alternatif Algoritma I 2. Pada alternatif algoritma kedua, setiap channel pada file MIDI diproses secara terpisah. Melodi pada masing-masing channel diproses seperti pada algoritma pertama. Melodi yang dipilih adalah melodi pada channel yang memiliki rata-rata nada tertinggi. Kelemahan algoritma ini adalah mungkin saja melodi yang dipilih adalah melodi iringan (accompainment) yang kebetulan bernada tinggi. Hasil penerapan algoritma ini terhadap melodi pada Gambar 2.6 dapat dilihat pada Gambar 2.8. Gambar 2.8 Hasil Penerapan Alternatif Algoritma II II - 22

3. Pada alternatif algoritma ketiga, setiap channel pada file MIDI diproses secara terpisah. Melodi pada masing-masing channel diproses seperti pada algoritma pertama. Jika ada beberapa nada yang dibunyikan pada saat bersamaan, maka nada yang dipilih adalah nada yang paling rendah. Kelemahan algoritma ini adalah mungkin saja melodi yang dipilih adalah melodi iringan jika pada sebuah channel terdapat melodi utama dan melodi iringan. Hasil penerapan algoritma ini terhadap melodi pada Gambar 2.6 dapat dilihat pada Gambar 2.9. Gambar 2.9 Hasil Penerapan Alternatif Algoritma III II - 23