Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
ISSN : 1978 – 9777
PROGRAM KONVERSI NOT BALOK DENGAN STRUKTUR MusicXML KE NOT ANGKA
Lukas Chrisantyo A.A., S.Kom.1, Katon Wijana, S.Kom., M.T.2, Restyandito, S.Kom., MSIS.3 1
Mahasiswa Teknik Informatika Universitas Kristen Duta Wacana, Yogyakarta. 1
1
Dosen Sistem Informasi Universitas Kristen Duta Wacana, Yogyakarta.
Dosen Teknik Informatika Unversitas Kristen Duta Wacana, Yogyakarta.
ABSTRAK Notasi musik adalah sarana untuk menyimpan hasil karya musik seseorang. Standar penulisan notasi yang berlaku secara internasional adalah notasi balok. Bagi sebagian pemusik terutama penyanyi di Indonesia, membaca not balok adalah hal yang susah bila dibandingkan dengan membaca not angka. Hal ini menyebabkan harus ada konversi yang bila dilakukan secara manual adalah pekerjaan yang kurang efektif dan efisien. Melihat kondisi tersebut, penulis merancang suatu program bantu untuk mengkonversi not balok ke not angka dengan batasan utama untuk satu jenis suara saja (monofon). Sebagai format berkas not balok, penulis menggunakan format file MusicXML dari Recordare. Sebagai pembanding, penulis juga menyertakan format berkas sumber dari file MIDI maupun menuliskan not balok secara manual di editor yang kemudian semuanya akan dikonversi ke not angka. Proses konversi menggunakan konsep dasar interval nada dan dibantu dengan penggunaan array statis untuk menyimpan informasi not angka serta untuk mempermudah penggeseran nada dasar. Pada konversi MusicXML disediakan juga kemampuan untuk menyesuaikan nada dasar apabila pada lagu didapati nada yang berada di luar jangkauan vokal manusia. Hasil konversi ditampilkan dengan bantuan font Nada-Arial yang dirancang sendiri untuk memenuhi kebutuhan tampilan not angka. Hasil konversi disimpan dalam format dokumen Microsoft Word agar pengerjaan selanjutnya bisa lebih fleksibel. Bila dilakukan pengujian secara intuitif, konversi MusicXML menghasilkan keluaran not angka yang akurat. Kata kunci: software engineering, conversion of musical notation, MusicXML 1. PENDAHULUAN 1
Mahasiswa Teknik Informatika Universitas Kristen Duta Wacana, Yogyakarta. Dosen Sistem Informasi Universitas Kristen Duta Wacana, Yogyakarta. 3 Dosen Teknik Informatika Unversitas Kristen Duta Wacana, Yogyakarta. 2
D ‐ 1
Seminar Nasional Teknologi 2007 (SNT 2007) ISSN : 1978 – 9777 Yogyakarta, 24 November 2007 Dalam dunia seni musik, notasi merupakan salah satu komponen yang penting. Notasi musik adalah sarana untuk menyimpan hasil karya musik seseorang. Lagu-lagu klasik yang rumit tidak akan pernah bisa dimainkan lagi pada zaman sekarang apabila tidak dituliskan dalam bentuk notasi musik. Walaupun saat ini media rekam sudah berkembang pesat, notasi musik yang baik tetap digunakan untuk mendukung proses edukasi musik dan cara memainkan musik itu sendiri. Permasalahan yang muncul adalah susahnya belajar not balok yang sudah ratusan tahun menjadi standar notasi musik di seluruh dunia. Perlu ketelatenan dan kesungguhan dalam mempelajari not balok. Untuk itu diciptakanlah not angka yang lebih mudah dipelajari bagi kaum awam musik. Dari sinilah tercipta perbedaan antara pemusik yang menggunakan not balok dan not angka. Pemusik yang sudah terbiasa memakai not balok, seringkali kesulitan memakai not angka. Hal yang sama juga terjadi sebaliknya. Penyanyi paduan suara sulit sekali diajak membaca not balok walaupun kemampuannya membaca not angka tidak diragukan lagi. Oleh karena permasalahan di atas, dibutuhkan penerjemah yang mampu mengkonversi dua jenis notasi ini. Secara umum, perumusan masalah mencakup konversi not balok dengan bantuan komputer dari file berstruktur MusicXML ke not angka, dengan pembanding masukan not balok dari file MIDI dan menulis secara manual di Editor Not Balok.
2. PERANCANGAN KONVERSI Sesuai fungsionalitasnya, program ini memiliki masukan atau input sebanyak tiga macam, yaitu file MusicXML, file MIDI format 0 atau 1, dan masukan mouse untuk meletakkan gambargambar not balok dan simbol-simbol yang diperlukan. Piranti input keyboard digunakan untuk memasukkan judul lagu pada editor not balok. File MusicXML dapat dibuat oleh berbagai macam program penyunting not balok yang umum dipakai di seluruh dunia, seperti Finale®, Encore®, Sibelius®, dan lain sebagainya. Cara pembuatannya sangat mudah, user tinggal menyimpan not balok yang sudah disusun dengan cara mengekspor ke MusicXML. File MIDI format 0 atau 1 juga dapat dibuat oleh berbagai macam program penyunting not balok atau alat musik keyboard, gitar, organ, clavinova, dan lain sebagainya asalkan mempunyai fasilitas MIDI. Karena karakteristik file MIDI yang menyimpan notasi secara timewise, maka dapat diprediksi hasil konversi kemungkinan kurang sempurna jika dibandingkan hasil konversi file MusicXML. File MusicXML yang akan dikonversi dibuka terlebih dahulu menggunakan komponen XMLDocument milik Delphi dengan perintah XMLDocument1.LoadFromFile(OpenDialog1 .FileName). Setelah file berhasil dibuka, datanya secara otomatis dimuat ke memori dengan struktur hirarkis/tree sesuai dengan ciri file XML. Untuk mencari value dari node yang diinginkan, kita bisa menggunakan metode:
D ‐ 2
Seminar Nasional Teknologi 2007 (SNT 2007) ISSN : 1978 – 9777 Yogyakarta, 24 November 2007 Setelah file MusicXML dibuka, digunakan langkah-langkah pemrosesan dengan acuan sebagai berikut: - Judul lagu terdapat pada: XMLDocument1.DocumentElement.ChildValues['movement-title'] - Nama pengarang terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['identification'] .ChildValues['creator'] - Nama pengarang terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['identification'] .ChildValues['creator'] - Nada dasar terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['part'] .ChildNodes.Nodes['measure'].ChildNodes.Nodes['attributes'] .ChildNodes.Nodes['key'].ChildValues['fifths'] - Jenis birama terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['part'] .ChildNodes.Nodes['measure'].ChildNodes.Nodes['attributes'] .ChildNodes.Nodes['time'].ChildValues['beats'] dan XMLDocument1.DocumentElement.ChildNodes.Nodes['part'] .ChildNodes.Nodes['measure'].ChildNodes.Nodes['attributes'] .ChildNodes.Nodes['time'].ChildValues['beat-type'] - Tempo relatif terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['part']
D ‐ 3
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007 .ChildNodes.Nodes['measure'].ChildNodes.Nodes['direction']
ISSN : 1978 – 9777
.ChildNodes.Nodes['direction-type'].ChildValues['words'] - Tempo mutlak (Metronome Maelzel) terdapat pada: XMLDocument1.DocumentElement.ChildNodes.Nodes['part'] .ChildNodes.Nodes['measure'].ChildNodes.Nodes['direction'] .ChildNodes.Nodes['direction-type'].Attributes['tempo'] - Informasi notasi terdapat pada node part>measure>note.
Untuk mengkonversi notasi balok digunakan ketentuan jika nada dasar tidak menggunakan tanda kromatis (0 kruis dan 0 mol) atau nilai fifths = 0 yang lazim disebut Do=C maka not angka yang sepadan adalah:
Tabel 1: Padanan not balok dengan not angka pada nada dasar Do=C
Untuk membantu proses konversi, digunakan struktur data berupa array, antara lain: 1. ArrayNDsr ArrayNDsr berisi elemen-elemen not balok nada dasar.
Tabel 2: Elemen-elemen ArrayNDsr
2. ArrayNA
D ‐ 4
Seminar Nasional Teknologi 2007 (SNT 2007) ISSN : 1978 – 9777 Yogyakarta, 24 November 2007 ArrayNA berisi elemen-elemen not angka dari not terendah hingga not tertinggi. Elemen ini berupa kode font NADA-ARIAL untuk menampilkan bentuk not angka yang diinginkan. Tabel 3: Elemen-elemen ArrayNA
3. ArrayNB ArrayNB berisi elemen-elemen not balok dari not terendah hingga tertinggi. ArrayNB berfungsi membantu pencarian not yang berada di luar batas vokal manusia, yaitu G3 hingga F5.
Tabel 4: Elemen-elemen ArrayNB
D ‐ 5
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
ISSN : 1978 – 9777
Setelah mengambil informasi-informasi awal, program akan memproses informasiinformasi notatif. Pertama akan dilakukan pengecekan not-not yang terlalu rendah atau tinggi dari birama awal hingga akhir. Not yang terlalu rendah diprioritaskan karena berdasarkan teori vokal bahwa batas bawah suara manusia bersifat permanen dan tidak bisa direndahkan lagi. Hal ini berbeda dengan batas atas suara manusia yang bisa dilatih agar bisa menyanyikan nada yang lebih tinggi dari biasanya. Bila ditemukan not yang di luar batas, maka user akan diberi pilihan untuk mengubah nada dasar atau tidak.
Setelah pengecekan batas not selesai, program mulai mengkonversi not dari birama awal hingga akhir dengan urutan: 1. Cek ulang nada dasar, hal ini sebagai antisipasi bila ada perubahan nada dasar di tengah-tengah lagu (lazim disebut modulasi). 2. Konversi tanda diam (rest). 3. Konversi pitch tanpa mempedulikan nada dasar lebih dahulu (misal C dikonversi jadi 1/do, D jadi 2/re, dan seterusnya sesuai oktaf). Kemudian disesuaikan dengan nada dasar yang telah didapat dari langkah 1. Penyesuaian ini dilakukan dengan cara menggeser pointer ArrayNA sebanyak selisih jarak dari nada dasar C sampai nada dasar yang dimaksud, atau bisa dilihat pada tabel berikut: Tabel 5: Tabel interval antar nada dasar Nada Nada Kromatis Step Kromatis Step Dasar Dasar
4. 5. 6. 7.
C
0 kruis
0
F#/Gb
6 kruis/6 mol
-6
C#/Db
7 kruis/5 mol
-1
G
1 kruis
-7
D
2 kruis
-2
G#/Ab
4 mol
4
D#/Eb
3 mol
-3
A
3 kruis
3
E
4 kruis
-4
A#/Bb
2 mol
2
F
1 mol
-5
B/Cb
5 kruis/7 mol
1
Konversi tanda triol. Konversi tanda slur/tie/legato. Konversi harga not. Tutup dengan garis birama penutup. D ‐ 6
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
ISSN : 1978 – 9777
Setelah semua informasi selesai diproses, hasilnya ditampilkan di komponen RichEdit1 dan RichEdit2. Jika user menekan tombol SimpanWord maka program akan melakukan penyimpanan ke dalam file berformat dokumen Word (*.doc) dengan nama sesuai keinginan user. Penyimpanan dalam dokumen Word menggunakan komponen WordApplication dan WordDocument yang mensyaratkan pencantuman ComObj, OleServer, WordXP dalam klausa uses. Berikut ini adalah flowchart dari proses konversi not balok dari file dengan struktur MusicXML:
Gambar 2: Flowchart Konversi Not Balok dari file MusicXML
Proses konversi dari file MIDI hampir serupa dengan proses file MusicXML di atas. Perbedaanya hanya pada pembacaan format dan tidak disertakan kemampuan pengecekan not di luar jangkauan vokal manusia. File MIDI menyimpan informasi harga nada dengan range nilai tertentu sesuai temponya (timewise). Sedangkan pada editor not balok, gambar-gambar not diletakkan di area tertentu yaitu pada garis-garis paranada dengan dua garis bantu di atas dan di bawah baru kemudian dikonversi langsung dalam bentuk not angka. Proses konversi sama dengan proses yang telah dijelaskan di atas.
D ‐ 7
Seminar Nasional Teknologi 2007 (SNT 2007) ISSN : 1978 – 9777 Yogyakarta, 24 November 2007 Untuk menampilkan not balok di dalam editor, diperlukan tools berupa gambar-gambar not beserta simbol-simbolnya. Gambar not dan simbol musik diciptakan melalui image editor dalam format bitmap, dengan pixel sebagai satuannya. Pixel adalah akronim dari picture element, yaitu merupakan satuan terkecil dari grafik. Image editor yang dipakai adalah Borland Image Editor, program bawaan dari paket Borland Delphi 7. Untuk menampilkan not angka dengan bagus perlu dibuat sebuah font yang mendukung penulisan not angka. Penulis menggunakan program bantu Font Creator 5.5 untuk memodifikasi font Arial menjadi font NADA-ARIAL. Program bantu yang bisa di-download di alamat http://www.high-logic.com/ ini bersifat shareware dengan masa evaluasi 30 hari. Aturan-aturan yang dipakai dalam penulisan not angka menggunakan font NADA-ARIAL adalah sebagai berikut: Tabel 6: Aturan penulisan not angka menggunakan font NADA-ARIAL
3. ANALISIS Sebagai pengujian, disiapkan sebuah lagu berjudul “Indonesia Pusaka” karya Ismail Marzuki yang menggunakan nada dasar Do=C dan berbirama 4/4 atau common. Penggunaan nada dasar ini dimaksudkan untuk menguji apakah nada A tinggi bisa dideteksi sebagai nada yang berada di luar jangkauan manusia. Kemudian agar bisa dikonversi, lagu di atas diekspor dalam format MusicXML dan MIDI.
D ‐ 8
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
Gambar 3: Lagu “Indonesia Pusaka” dalam bentuk not balok
ISSN : 1978 – 9777
Gambar 4: Deteksi nada yang terlalu tinggi untuk dinyanyikan
Pada pengujian menggunakan format MusicXML, program mampu mendeteksi nada A5 yang terlalu tinggi untuk dinyanyikan. Program akan melakukan penurunan nada dasar menjadi G#/Amol.
Gambar 5: Lagu “Indonesia Pusaka” dalam setelah dikonversi menggunakan file MusicXML
Gambar 6: Lagu “Indonesia Pusaka” setelah dikonversi menggunakan file MIDI
Karena keterbatasan program dan struktur file MIDI, maka hasil konversi tidak bisa menampilkan informasi birama. Oleh karena itu disediakan fungsi untuk memutar file MIDI sehingga user dapat terbantu dalam memahami hasil konversi.
D ‐ 9
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
ISSN : 1978 – 9777
Gambar 7: Lagu “Indonesia Pusaka” yang ditulis manual di Editor Not Balok
Setelah dilakukan pengujian program terlihat bahwa secara umum program mampu mengkonversi notasi balok menjadi notasi angka, terlepas dari perbedaan masing-masing sumber notasi balok. Celah dimana program bisa melakukan kesalahan terutama bila user memasukkan notasil lagu di luar batasan masalah. Celah tersebut antara lain: -
-
Pada konversi MusicXML, bila user memasukkan lagu berbentuk polifoni/akordis, maka program akan menampilkan hasil konversi akord menjadi sejajar di samping not yang dikonversi sebelumnya. Pada konversi not balok, bila user menuliskan not dari kanan ke kiri, not angka tetap akan berisi not yang dituliskan pertama, kedua dan seterusnya dan tetap ditulis dari kiri ke kanan, sehingga terlihat terbalik.
4. KESIMPULAN Dalam menjalankan fungsinya sebagai perangkat konversi, program ini telah berfungsi dengan baik. Notasi balok sesusah apapun dapat dikonversi dengan cepat dan mudah menggunakan program ini. Dengan adanya program ini, pemusik (khususnya penyanyi dan penulis partitur lagu) dapat terbantu pekerjaannya. Jika ditinjau secara teknis, proses konversi notasi dengan bantuan array disimpulkan dapat menghasilkan output yang akurat. Hal ini didukung dengan karakteristik array yang mampu menggeser pointer sesuai aturan interval nada untuk mendapatkan tangga nada sesuai nada dasar. Hasil konversi berupa not angka yang ditampilkan menggunakan font kreasi sendiri terlihat cukup representatif untuk bisa langsung dibaca atau dinyanyikan. Dari perbandingan tiga macam sumber not balok yang dibahas pada karya tulis ini dapat disimpulkan pula bahwa MusicXML adalah format penyimpanan not balok yang paling cocok untuk dikonversi menjadi not angka. Hal ini disebabkan karena keunggulan format XML yang mampu menyimpan begitu banyak informasi namun tetap dapat dibaca dengan mudah oleh berbagai bahasa pemrograman.
D ‐ 10
Seminar Nasional Teknologi 2007 (SNT 2007) Yogyakarta, 24 November 2007
ISSN : 1978 – 9777
5. DAFTAR PUSTAKA Andi Offset (2003), Panduan Praktis Pemrograman Borland Delphi 7.0, 2003, Wahana Komputer, Yogyakarta: Budidharma, Pra. (2001) Buku Kerja Teori Musik Sebagai Pengantar Komposisi & Aransemen. Jakarta: PT. Elex Media Komputindo Craig, William. Outline of the Standard MIDI File Structure, dalam http://ccrma.stanford.edu/ccarh.orghandoutsmf.html; diakses terakhir tanggal 17 Oktober 2006 Cunningham, Stuart (2005) Suitability Of MusicXML As A Format For Computer Music Notation & Interchange. University of Wales: North Wales Jelita, Natalia. (2000) Editor Not Balok, Skripsi S1, Program Studi Teknik Informatika, Universitas Kristen Duta Wacana, Yogyakarta Musical Notation, http://en.wikipedia.org/wiki/musical_notation; diakses terakhir 20 November 2006 MusicXML Definition, http://www.musicxml.org; diakses terakhir 12 September 2006 Pranata, Antony (2003). Pemrograman Borland Delphi 6. Yogyakarta: Andi Offset, Santosa, P. Insap, Ir. MSc.(1994) Grafika Komputer dan Antar Muka Grafis. Yogyakarta: Andi Offset Setiawan, Yudha C. (2004) Tip & Trik Delphi. Yogyakarta: Andi Offset Soeharto, M. (1975) Belajar Notasi Balok. Jakarta: PT. Gramedia, St Laurent, S. (2000) XML Elements of Style. Hill Publishers: Berkshire, Sukohardi, Al. (1997) Teori Musik Umum. Yogyakarta: Pusat Musik Liturgi Using The Microsoft Word COM Interface, http://www.accelerated-ideas.com/DelphiKBase/ aiDelphiKBase_WordCOM1.aspx; diakses terakhir 22 Maret 2007 Waskitojati, R. Damar. (2004) Program Bantu Penentuan Akord dan Pembacaan Dari Suatu Rangkaian Notasi Angka. Skripsi S1, Program Studi Teknik Informatika, Universitas Kristen Duta Wacana, Yogyakarta What is Numbered Musical Notation?, http://www.2bhonest.com/index.htm; diakses terakhir 20 November 2006
D ‐ 11