Tutorial: How to Create XMMS Lyrics Plugin Using Shell Script
Lama gak nulis dalam Bahasa Indonesia nulis lagi ah… :)
Salah satu audio player yang sangat populer di X Window adalah XMMS. Bagi sebagian orang mungkin menganggap bahwa XMMS sudah tua dan dan tidak lagi terupdate. XMMS versi terakhir adalah 1.2.11 yang dirilis tahun 2007(Minor Update). Developer XMMS sendiri sudah tidak berniat untuk membuat versi terbarunya. Sayang sekali :(. Namun bagi saya pribadi belum ada player lain yang mampu membuat saya “berpaling hati” :).
Berbagai player sudah saya coba di Linux mulai dari bawaan standard Ubuntu seperti Rythmbox, Banshee, Audacious, dll. Namun masih belum sreg juga. Terutama dari sekian banyak player tersebut output volumenya tidak sekeras XMMS pada laptop saya, meskipun sudah dipasang plugin tambahan untuk audio boost dan kawan-kawannya. Yang ada malah suaranya pecah.
Ok, langsung saja ke topik artikel ini yaitu bagaimana membuat plugin yang menampilkan lyric dari lagu yang sedang diputar. “Senjata” andalan saya masihlah shell script :). Sebenarnya ide ini sudah lama saya pendam(hehe… kayak cinta aja dipendam) karena tersandung masalah males dan kelupaan jadi ya baru kesampaian sekarang. Sebelum ini saya sudah mencoba plugin lyric bernama “singit” tapi gak tau kenapa kok g bisa. Jadi ya buat sendiri deh, meski sederhana yang penting “muncul” :). Toh lyric ini kan kita lihat waktu gak fokus sama pekerjaan.
Assumption
Asumsi saya adalah anda sudah menginstall XMMS. Jika belum silahkan pergi ke situs http://www.xmms.org/ disana juga terdapat paket debian/ubuntu dan repositorynya.
My Environment
- OS: Ubuntu Linux 8.04
- Desktop Environment: Gnome
- GTK+ Dialog: Zenity
- XMMS: Versi 1.2.10
- Song Change Plugin: Versi 1.2.10
- Path Script: /home/astadev/shellscript/xmms-lyrics.sh
- Direktori Lyric: /media/sda11/feisty/SecondHome/personal/lyrics/
Note: Song Change Plugin merupakan plugin general dari XMMS, jadi seharusnya sudah terinstall secara default.
Step by Step
1. Menulis Plugin
Langkah pertama tentu adalah membuat pluginnya terlebih dahulu. Buka teks editor lalu salin kode berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/bin/sh # function to convert space to dash and UPPERCASE to lowercase function toLowerHypen() { # take all the string the_string=$* echo "$the_string" | tr [:blank:] "-" | tr "[A-Z]" "[a-z]" return } # function to split "singer - song" format function splitSingerSong() { the_format=$* # see man IFS IFSdef=$IFS IFS="-" declare -a tempdata=($the_format) IFS=$IFSdef singer=${tempdata[0]} song=${tempdata[1]} } splitSingerSong $* # trim singer=`toLowerHypen $singer | tr -s " "` song=`toLowerHypen $song | tr -s " "` # change lyric_dir according to your own setting lyric_dir="/media/sda11/feisty/SecondHome/personal/lyrics" lyric_file="${lyric_dir}/${singer}/${song}.txt" lyric_content= if test -f "$lyric_file" then lyric_content=`cat "$lyric_file"` else lyric_content=`echo -e "Lyric File Not Found\n\n($lyric_file)"` fi # get previous process and kill it zenity_proc=`cat /tmp/xmms.lyrics.pid` kill -9 $zenity_proc > /dev/null 2> /dev/null sleep 0.1 zenity --notification --text="$lyric_content" & echo $! > '/tmp/xmms.lyrics.pid' |
Ganti nilai dari lyric_dir sesuai dengan letak direktori lyric anda nantinya. Simpan file ini, dalam contoh saya simpan pada /home/astadev/shellscript/xmms-lyrics.sh. Selanjutnya kita memberikan permission execute untuk file ini.
$ chmod +x /home/astadev/shellscript/xmms-lyrics.sh
Note: Sesuaikan dengan lokasi file anda.
2. Mengaktifkan Script Melalui Plugin Song Change
- Klik kanan XMMS
- Pilih Options » Preferences
- Pilih tab General Plugins
- Pilih Song Change 1.2.10
- Centang Enable Plugin pada pojok kanan bawah
- Klik Configure
- Pada Command xmms start a new song
- Isikan lokasi script anda, pada contoh:
/home/astadev/shellscript/xmms-lyrics.sh - Klik OK » Apply » OK
4. Membuat File Lyric
Agar plugin dapat menemukan file lyric sesuai dengan penyani dan judul lagunya. Maka perlu adanya konvensi(aturan) dalam membuat file lyric. Sebuah contoh, misal nama artisnya Michael Heart dan judul lagunya We Will Not Go Down maka struktur direktorinya adalah:
- Lyric Dir:
/media/sda11/feisty/SecondHome/personal/lyrics/ - Artist Dir:
michael-heart - File Name:
we-will-not-go-down.txt
Nama artis dan judul lagu harus HARUS ditulis dalam huruf kecil(lowercase) dan spasi diubah menjadi tanda “-” (hypen). Judul lagu harus berakhiran dengan ekstensi “.txt”. Dalam contoh diatas lokasi lengkap dari lyric adalah:
/media/sda11/feisty/SecondHome/personal/lyrics/michael-heart/we-will-not-go-down.txt
5. Let’s Test The Plugin
Sediakan sebuah file lyric untuk sebuah lagu, lalu mainkan lagu tersebut. Lihat pada System Tray akan muncul sebuah icon notifikasi. Arahkan mouse tersebut ke icon notifikasi maka akan muncul lyric dari lagu tersebut.
Selamat Mencoba :).
PS:
- Thanks to Michael Heart, your powerful song and lyric makes me write this plugin.
- Script ini juga bisa digunakan untuk Audacious
Referensi:
http://www.xmms.org/
http://www.rioastamal.net/files/ebook/tutorial-mini-shell.gz










