rioastamal.net

Just things inside my head…

Archive for January 17th, 2009

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

  1. Klik kanan XMMS
  2. Pilih Options » Preferences
  3. Pilih tab General Plugins
  4. Pilih Song Change 1.2.10
  5. Centang Enable Plugin pada pojok kanan bawah
  6. Klik Configure
  7. Pada Command xmms start a new song
  8. Isikan lokasi script anda, pada contoh: /home/astadev/shellscript/xmms-lyrics.sh
  9. Klik OK » Apply » OK

general plugins Song Change Plugin

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.

Plugin Test

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

bookmark bookmark bookmark bookmark bookmark bookmark