11 February 2009

Jack Audio Connection Kit di Ubuntu Intrepid Ibex

Saya mulai berkenalan dengan sistem audio canggih di Linux sejak kurang lebih 2 atau 3 tahun yang lalu. Saya coba-coba pada PC saya yang hanya bersenjatakan Sound Blaster 16 (kuno sekali) dan sound card on board (kalau tidak salah ingat CM878). Saya yakin bahwa manajemen audio di Linux bisa jauh lebih mumpuni adalah karena beberapa tahun yang lalu dengan distro SuSE Linux --kalau tidak salah-- versi 8, kedua sound card saya bisa terdeteksi dan bahkan bisa difungsikan bersama. Saya bisa mengarahkan program tertentu, misalnya game Quake 3 Arena, untuk memakai sound card on-board, sementara program lain memakai sound blaster, atau sebaliknya. Ini hebat, karena dengan Windows ini tidak bisa dilakukan.

Jack Audio Connection Kit (JACK) adalah salah satu alternatif sistem audio di Linux. JACK ditujukan untuk aplikasi audio profesional untuk menghasilkan audio bermutu tinggi di Linux. Ketika saya mengenal Jack pertama kali, masih banyak kendala yang harus diatasi atau belum ada jalan keluarnya. Jika kita mengaktifkan Jack, maka sistem audio dipaksa seluruhnya harus melalui Jack, sedangkan tidak semua program kompatibel dengan Jack. Dengan hadirnya Ubuntu Intrepid Ibex, ternyata hampir (memang belum) semua masalah tersebut sudah bisa dicari jalan keluarnya.



Untuk memberi gambaran kehebatan Jack Audio Connection Kit tanpa banyak membahas latar belakang teknis, berikut ini beberapa hal praktis yang bisa kita dapatkan dengan Jack dan tidak bisa dengan sistem audio yang lain (seperti Alsa, OSS, ESD, aRTS):
  • Kita bisa memiliki Equalizer tersendiri yang terpisah dari program Audio Player yang ada. Equalizernya sendiri (atau audio processor) bisa bermacam-macam. Yang paling terkenal adalah Jack-Rack dan JaMin.
  • Kita bisa mengarahkan suara dari satu sumber ke sumber lain tanpa ada kelambatan yang berarti (dikenal sebagai low latency). Misalnya dari Audio Player, ke Equalizer, ke Amplifier, kemudian ke Speaker. Kesemuanya merupakan program yang berbeda-beda.
  • Tiap Sumber bisa memiliki rute yang berbeda. Misalnya yang satu ke Amplifier dulu, baru ke program tertentu yang memberi efek Echo, lalu ke Equalizer.
  • Bisa dikoneksikan dengan sistem MIDI, bahkan dengan MIDI Controller yang terintegrasi. Jika kita menekan tombol play pada satu program, program lain serentak mulai memainkan musik. Dengan demikian kita bisa menciptakan orchestra lengkap dengan komputer kita sebagai pengendali, bahkan dengan peralatan MIDI eksternal.


Untuk memahami sistem Jack memang memerlukan waktu dan banyak utak-atik, tetapi jika kita sudah memahaminya, hanya langit saja yang bisa menjadi batas kreativitas kita.

Untuk anda yang penasaran ingin segera mencicipi dan mempelajari Jack, silahkan download Distro Ubuntu Studio, bakar imagenya pada CD dan diinstall. Jika di PC anda sudah terinstall Ubuntu Intrepid silahkan ketik sudo apt-get install ubuntu-studio di command line, atau buka Synaptic dan cari paket Ubuntu Studio dan instal. Warning: Paketnya sangat besar (ratusan megabyte).

Sebagai permulaan ada 2 program utama yang layak anda coba yaitu Ardour dan Rosegarden.
Ardour merupakan Digital Audio Workstation yang mumpuni. Layak dipelajari, dan jika sudah dikuasai anda sebenarnya sudah memiliki sebuah studio rekaman multitrack yang canggih. Tentu saja masih harus ditentukan dengan hardware penunjang seperti mic, isolasi ruangan, perkabelan, dan faktor-faktor lainnya. Rosegarden mirip dengan Ardour, tetapi terintegrasi penuh dengan sistem MIDI. Anda bisa mencampurkan track audio dengan track MIDI pada Rosegarden. Juga tersedia notation editor, dimana kita bisa mengedit musik kita dengan interface not balok.

Tips:
  • Selalu jalankan dulu program qjackctl sebelum menjalankan program-program yang lain, jika tidak mereka akan mengeluh tentang tidak bisa melakukan koneksi ke Jack server.
  • Jack adalah system yang kompleks yang ditujukan untuk profesional. Jangan mengharapkan menginstalnya kemudian tiba-tiba anda mendapatkan sistem audio yang aduhai. Kurva belajar anda mungkin sangat curam.
  • Jika anda hanya ingin sekedar mendengarkan musik saja, sistem audio yang ada ditambah speaker yang bermutu sudah memadai tidak perlu bersusah payah menginstal Jack.
  • Di lain pihak, audio output yang kurang memuaskan bisa dipoles dengan Jack untuk menghasilkan suara yang lebih baik. Sebagai contoh, output audio dari speaker laptop Axioo saya yang hanya pas-pasan sekali dan volumenya kecil, bisa menjadi "berisi" setelah memakai Jamin audio prosesor yang terintegrasi dengan Jack. Tentu saja, masalah suara frekuensi rendah (bass) tidak bisa teratasi karena memang speakernya tidak mampu.
  • Jika bisikan jiwa seni dan kebebasan anda tak dapat dibendung, segera install ubuntu studio hari ini, jangan terlambat.

10 February 2009

Koneksi telkom flash dengan Sony Ericsson P1i dan Ubuntu Intrepid Ibex

Network Manager di Ubuntu Intrepid Ibex memberikan fasilitas yang lebih menyenangkan dan mudah termasuk untuk koneksi Broadband menggunakan Telkom Flash. Klik kanan pada icon network manager di taskbar dan pilih edit connections ... kemudian pilih Mobile Broadband. Langkah selanjutnya sangat intuitif.

Sayangnya, deteksi Sony Ericsson P1i saya di Ubuntu Intrepid kurang mantap. Kadang-kadang terdeteksi otomatis, kadang-kadang tidak. Jika terdeteksi, kita akan langsung dikoneksikan dengan Telkom Flash. Tapi jika tidak, applet Network Manager akan diam saja tanpa reaksi. Dengan perintah dmesg, terlihat bahwa Sony Ericsson P1i sebenarnya terdeteksi dengan konsisten oleh kernel. Jadi menurut dugaan saya ini adalah masalah di Network Manager.

Untuk rekan-rekan yang mengalami hal yang sama, saya bagikan sebuah skrip hasil utak-atik saya untuk mengatasi masalah ini. Untuk itu terlebih dahulu kita harus memodifikasi file /etc/wvdial.conf menjadi seperti ini (file ini harus diedit sebagai root):

# /etc/wvdial.conf -----------
[Dialer Defaults]
ISDN = off
Modem Type = Analog Modem
Baud = 460800
Phone = *99***1#
Dial Attempts = 1
Dial Command = ATM0L0DT
Ask Password = off
Password = wap123
Username = wap
Auto Reconnect = off
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = off
Stupid Mode = on
Idle Seconds = 300
Auto DNS = on

[Dialer FlashVolumeBased]
Modem = /dev/ttyACM1
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1, "ip", "telkomsel"

[Dialer FlashTimeBased]
Modem = /dev/ttyACM1
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1, "ip", "internet"

# -------- selesai /etc/wvdial.conf ------

Lalu buat juga sebuah skrip yang saya beri nama connectd dan simpan di /usr/local/bin/


#!/bin/bash
# Notification daemon for connection through PPPD
#
# /usr/local/bin/connectd
# I use this personally to automate the internet connection
# through my Sony Ericsson P1i Cellular Phone
#
# Author : Dekrit Gampamole
# Email : dekrit@gampamole.net
#
# Requirements:
# Bash
# Zenity
# Gnome icon
# Licensed under GPL version 2
# Version 0.1

# Global Variables

modem_connected_to_pc=false
notification=false
previously_connected=false
connected_to_internet=false
sleeptime=5s
icon="/usr/share/icons/gnome/22x22/devices/ipod_mount.png"
# Change this according to your preferred package
# package=FlashTimeBased
package=FlashVolumeBased

# modem device
# set this according to your hardware automatic assignment
modem=/dev/ttyACM1

# Functions definitions
function check_modem_status(){
# Return global variable boolean modem_connected
if [ -c $modem ]; then
modem_connected_to_pc=true
else
modem_connected_to_pc=false
fi
}

function toggle_notification(){
# Toggle notification icon on the tray
if $connected_to_internet; then
if ! $previously_connected; then
killall zenity;
zenity --notification --window-icon=$icon --text="Connect" &
previously_connected=true
fi
else
if $previously_connected; then
killall zenity;
zenity --notification --text="Not connected" &
previously_connected=false
fi
fi
}

function connect(){
# Dial out
if ! $connected_to_internet; then
# Check whether wvdial is already running
if [ ! "$( ps aux | grep wvdial | grep conf )" ]; then
# if not: execute it
wvdial $package &
fi
fi
}

function check_connection_state(){
# Return global variable boolean connected_to_internet
# is pppd running?
if [ "$( ps aux | grep pppd | grep modem )" ]; then
connected_to_internet=true
else
connected_to_internet=false
fi
}

# Main function
function main(){
# the app
while (true); do
check_modem_status
check_connection_state
if $modem_connected_to_pc; then
connect
fi
toggle_notification
sleep $sleeptime
done
}

# Finally, execute it
main;

## selesai ---- /usr/local/bin/connectd


Skrip ini akan berfungsi sebagai daemon yang terus menerus memonitor apakah Sony Ericsson P1i sudah terhubung ke Laptop menggunakan kabel. Jika sudah terhubung maka skrip akan langsung melakukan koneksi ke internet. Jika koneksi sukses maka akan terlihat icon di Area Notifikasi pada Taskbar. Untuk menghentikan koneksi kabel boleh langsung dicabut dan icon notifikasi akan berubah menjadi icon segitiga kuning yang menyatakan tak ada koneksi.

Supaya skrip ini dijalankan otomatis setiap kali kita login ke Gnome, kita harus meletakkannya ke dalam Session Manager. Klik System > Preferensi > Sesi dan ikuti instruksi pada layar. Jangan lupa ubah Permission menjadi executable dengan perintah sudo chmod 755 /usr/local/bin/connectd.
Jika ingin segera melihat efeknya sekarang juga tekan Alt-F2 lalu ketik connectd dan klik Run. Hubungkan Sony Ericsson P1i anda dan tunggu beberapa saat sampai terlihat ada icon baru di Tray. Anda sudah terhubung ke internet.

Apakah Skrip ini bisa digunakan untuk modem yang lain? Jawabnya bisa. Caranya anda harus mengubah modem device sesuai nama device modem anda. Caranya hubungkan modem anda ke komputer, buka Terminal, ketikkan dmesg | tail. Perhatikan nama device tty yang baru terdeteksi. Akan terbentuk device baru di folder /dev/ dengan nama seperti yang tertera pada dmesg tadi.
Beberapa nama device yang umum adalah /dev/ttyACM0, /dev/ttyACM1 (seperti pada Sony Ericson P1i), /dev/ttyACM2. Jika memakai koneksi Bluetooth nama device biasanya adalah /dev/rfcomm0, dst. Ubah baris modem=/dev/ttyACM1 pada skrip di atas dengan nama device sesuai hasil deteksi.

Adakah cara lain yang lebih mudah? Untuk anda yang malas dengan perintah baris dan skrip yang membingungkan ini, silahkan install Gnome-PPP dengan perintah sudo apt-get install gnome-ppp, atau melalui Add/Remove Program pada menu. Sesudah terinstall, jalankan Gnome-PPP melalui menu Aplikasi>Internet>Gnome-PPP. Hubungkan modem anda (misalnya Sony Ericsson P1i atau Huawei E222) ke komputer, klik Setup, klik Detect. Kemudian klik Init Strings. Pada kolom Init string2 ketikkan AT+CGDCONT=1, "ip", "telkomsel" jika mau memakai telkom flash Volume-Based, atau ganti dengan "internet" jika mau memakai Time-Based.

Kenapa memakai skrip jika ternyata ada cara yang lebih gampang dengan Gnome-PPP? Jawab: saya malas tiap kali harus klik beberapa kali untuk melakukan koneksi. Lagipula jika koneksi tiba-tiba putus (sering terjadi), saya harus melakukan klik Connect lagi secara manual. Komputer tidak bisa ditinggalkan ketika melakukan download panjang karena tiap kali putus harus intervensi manual. Untunglah Linux penuh dengan kebebasan. Dengan mudah kita membuat sebuah program sederhana dengan peralatan seadanya tapi berfungsi sesuai keinginan kita. Skrip ini akan melakukan koneksi ulang secara otomatis jika koneksi terputus. Warning: hati-hati jika anda memakai paket Time-Based tagihan bisa membengkak, itu sebabnya saya memilih paket Volume-Based sebagai default.

Powered by ScribeFire.

Custom Search