Jack Kullanımına Giriş: Hazırlıklar ve Temel KonfigurasyonBu yazıda, Ubuntu Studio dökümanları ve kendi deneyimlerimden yararlanarak Jack'in temel çalışma prensibini ve bir kaç uygulama ile birlikte nasıl kullanılacağını anlatmaya çalışacağım. Bu konuda uzman olmadığım için çeşitli hatalarım olabilir.
Jack, ses ve midi uygulamaları arasında düşük gecikmeli ( low latency) yani gerçek zamanlı (real time) bağlantılar kurulmasına olanak veren bir ses sunucusu uygulamasıdır. Jack ile birlikte çalışabilen ses ve midi uygulamalarını, aygıtlarınızı birbirine uygun kanallardan giriş ve çıkışlarını bağlayabilir, böylelikle kayıt ve sentezleme işlerini yapabilirsiniz.
Jack normalde arka planda çalışan bir uygulamadır (daemon); fakat Qjackctl arabirimi (GUI) ile ses kartınız ve uygulamalarınız için gerekli konfigurasyonu yapabilir, bağlantıları kurabilir ve hata mesajlarını görebilirsiniz.
Jack, modüler bir ses stüdyosunu Linux dağıtımları üzerinde kurmanıza olanak verir. Jack ile birlikte çalışabilen uygulamalar çok çeşitlidir. Birbirleriyle Jack üzerinden bağlantı kurup uyumla çalıştıklarından, Windoz uygulamalarındaki gibi uyumsuzluklarla karşılaşma olasılığı daha azdır. İşleri parçalara bölebilir, her programı en iyi yaptığı iş için kullanabilirsiniz.
1. Gerçek Zamanlı Çekirdek (Real time kernel) Yüklenmesi ve Sistem Ayarlarının Yapılması
Jack ile birlikte ses uygulamalarını minimum kayıpla verimli bir şekilde kullanmak için gerçek zamanlı çekirdek kullanılması önerilir. Gerçek zamanlı çekirdek,
xrun'ların en düşük seviyeye indirilmesini sağlar.
Xrun'lar, ses kartı çalma ya da kaydetme sırasında, arabellekten okurken ya da arabelleğe yazarken, kullanılan programın henüz arabelleği doldurmadığı ya da boşaltmadığı durumlarda olur. Bazıları görmezden gelinebilir; özellikle uygulama ilk başladığı zaman. Fakat kayıt sırasında oluşabilecek kritik xrun'lar, kaydı olumsuz etkiler. Bu nedenle, gerçek zamanlı çekirdeği yükleyeceğiz:
sudo apt-get install linux-rt
Bu paket normalde gerekli paketlerle birlikte (modüller vb.) çekirdeği yükler. Fakat olur da istediğimiz modüller yüklenmezse, Synaptic'ten ya da komut satırından bunları yükleyebiliriz. Örnek:
linux-restricted-modules-2.6.24-19-generic şu anda kullandığımız generic çekirdeğin modülleri ise;
linux-restricted-modules-2.6.24-19-rt gerçekli zamanlı çekirdek için gerekli modüllerdir.
Gerçek zaman desteğini de sağlamak için, sistemimizde bazı ayarlar yapmamız gerekir. Bu ayarların temel amacı, kullanıcımıza konmuş olan ses ve bellek limitlerini artırmaktır. Bunun sonucunda uygulamalar gerçek zamanlı desteğe ve iyi bir performansa sahip olur.
sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - memlock 250000 >> /etc/security/limits.conf'
Açıklama: Buradaki komutların yaptığı iş, /etc/security/limits.conf dosyasına, @audio - rtprio 99 ve takip eden 2 satırı eklemektir. Daha sonra X'i yeniden başlatmanız gerekebilir.
Bunların dışında, eğer midi sıralama (midi sequencing) ile ilgili bir midi hatası alıyorsak, midi sequencer kernel modülünü yüklememiz gerekebilir:
sudo modprobe snd-seq
Eğer bu modülün yüklenmesi sorunumuzu çözüyorsa, kalıcı hale getirmek için:
sudo su -c 'echo snd-seq >> /etc/modules'
2. Jack ve Diğer Gerekli Uygulamaların Yüklenmesi
Elbette Jack'in kendisini ve bağımlılıklarını yüklememiz zorunludur. Fakat Jack ile çalışan uygulamalar çok çeşitlidir ve günden güne artmaktadır. Ancak bu konuda yeniyseniz ve bir yerden başlamanız gerekiyorsa okuduğum ve kullandığım kadarıyla önerebileceğim bazı paketler var. Bu paketler Jack'i ilk çalıştırdığınız zaman ayarları yaparken ve bağlantıları kurarken de size denem olanağı verecektir. İlk sesleri çıkarmanızı sağlayacaktır.
Temel Uygulamalar:sudo apt-get install ardour hydrogen jackd jack-rack qjackctl seq24 vkeybd zynaddsubfx patchage ubuntustudio-controls ubuntustudio-menu
Efekt Eklentileri ve Enstrümanlar:sudo apt-get install blop caps cmt fil-plugins ladspa-sdk mcp-plugins omins swh-plugins tap-plugins
sudo apt-get install dssi-host-jack dssi-example-plugins fluidsynth-dssi hexter xsynth-dssi
Önemli: Burada geçen paketler https://help.ubuntu.com/community/UbuntuStudioPreparation sayfasında verilmiştir. Ancak bilgiler biraz eskidir ve paket adları değişmiştir. Elden geldiğince düzeltip 8.04'e göre değiştirdim. Ayrıca gerekli codeclerinizin yüklü olması lazım. Bunu da ubuntu-restricted-extras ya da kubuntu için kubuntu-restricted-extras paketlerini yükleyerek yapabilirsiniz. Bunlar için http://www.ubuntu-tr.net/index.php?topic=952.0 başlığına bakın.3. Jack'in Ses Kartı için Ayarlanması
Bu bölüm önemli olduğu kadar, donanımdan donanıma değişeceği için açıklanması biraz güç bir bölümdür. Ancak Jack GUI'si, yani Jack Control ya da Qjackctl, bize hata mesajlarını aktararak ne yapmamız konusunda bizi yönlendirdiği için şanslıyız. Bu nedenle burada öncelikle kendi örneğimden gitmek istiyorum.
Öncelikle ses kartı bilgilerim:
focusfired@ubuntu:~$ lspci | grep audio
00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
Gördüğünüz gibi eski tip bir PCI ses kartım var, Creative SB live serisi. Ayrıca bir onboard kartım var, fakat öntanımlı olarak Creative kartımı kullanıyorum. PCI kartlar yaygın kullanılan kartlardır. Bu ilk ayarlar, onbaord ya da PCI ses kartına (en yaygın olanlara) sahipseniz bir örnek olarak kullanabileceğiniz ayarlardır. Jack GUI'sini başlatmak için, Uygulamalardaki Ses/Multimedya bölümünden ya da buradaki Ubuntu Studio menüsünden (yüklemişsek) Jack Control programını başlatıyoruz. Alt+F2 yapıp
qjackctl yazarak da başlatabiliriz. Başlattıktan sonra ayarlar için
setup kısmına giriyoruz.Creative SB Live! için yapılmış temel Jack Ayarları:[IMG]http://img37.picoodle.com/img/img37/4/7/13/f_jack1m_ec03dfb.png[/img] (http://www.picoodle.com/view.php?img=/4/7/13/f_jack1m_ec03dfb.png&srv=img37)
Şimdi burada önemli olanlar, sağ alt köşede gördüğümüz latency değerini belirleyen değerler. Latency, yani gecikme ne kadar az olursa, çalma ve kayıt uygulamaları için o kadar iyi olur. Önemli parametreler:
Realtime: Bu değer kesinlikle aktif olmalı. Çünkü ona göre çekirdek yükledik ve yapılandırma yaptık.
Frames/Period: Ne kadar düşük olursa, latency de o kadar düşer. Yani düşük olması iyidir. Fakat çok düşürürsek, hata alabiliriz ve Jack başlamaz.
Örneğin ben bu değeri 64 yaptığımda, latency 2.67 oluyor, fakat Jack başlamıyor ve Messages kısmında:
Alıntı YapALSA: final selected sample format for capture: 16bit little-endian
ALSA: cannot set period size to 64 frames for capture
ALSA: cannot configure capture channel
Hatalarını alıyorum. Bu beni yönlendiriyor. Ve değeri artırıp 128 yapıyorum. Hata almadığım için öyle bırakıyorum.
Bunu bir referans olarak alın ve Messages kısmındaki hataların çözümünde böyle bir yol izleyin.Input ve Output Device: Bu kısımlar default yani öntanımlı yapınca bende sorun çıkmadan çalıştı. Ancak sorun çıkarsa yine Messages kısmında hatayı görebilirsiniz (Input device'ın yanlış olduğuna dair bir hata). Ona göre seçenekleri deneyerek sonuca oluşabilirsiniz.
Misc kısmında, Enable system tray icon seçeneğini işaretlersek, Jack sistem çubuğunda duracaktır. Kullanışlı olabilir.
Önemli: Setup kısmındaki her ayar değişikliğinden sonra Jack server'ı stop yapın yani durdurun, ve yeniden başlatın (start).
4. Temel Jack Bağlantılarının Yapılması ve Ses Almak
Bu kısımda Jack'in artık kullanılmasına geçiyoruz. Jack'i kullanmak başta da belirttiğim gibi, belli uygulamaları çalıştırarak bağlantıları kurmakla oluyor. Hemen uygulamaya geçelim.
-Jack GUI'sini
Jack Control programını menüden çalıştırarak ya da
qjackctl komutuyla başlatıyoruz.
-Jack serverı Start butonuyla başlatıyoruz.
-Daha sonra yine ses menüsünden
ZynAddsubfx ve
Vkeybd programlarını başlatıyoruz. Küçük harflerle yazıp komut olarak da başlatabiliriz. Zynaddsubx açılınca Advanced menüsünü seçelim.
-
Connect menüsüne giriyoruz. Burası önemlidir, ayarlar burada yapılıyor. Önce biraz bilgi vereyim:
Zynaddsubfx bir software synthesizer, yani sentezleyici yazılımıdır. Çok farklı sesleri ve enstrümanları mevcuttur. Vkeybd bir klavye yazılımıdır. Tuşlarına fare ile basarak ya da klavyenizden ses çıkarabilirsiniz.
Bizim amacımız, bu programları Jack yoluyla birbirine bağlamak ve Vkeybd klavyesi ile, ZynaddSubfx programında ayarladığımız sesleri çalabilmek.
Connect menüsünde yapacağımız işlere geçelim:
[IMG]http://img37.picoodle.com/img/img37/4/7/13/f_jack2m_37d2302.png[/img] (http://www.picoodle.com/view.php?img=/4/7/13/f_jack2m_37d2302.png&srv=img37)
1. Görüntüdeki gibi Audio sekmesine giriyoruz. Burada solda yer alan Zynaddsubfx kısmındaki Output'ları yani çıkışları, sağ tarafta yer alan System--Playback kısmına, yani ses kartımızın çalma kısmına bağlıyoruz (Input). Bağlama işini, soldan ve sağdan istediğimiz öğeleri seçtikten sonra, Connect butonuna tıklayarak yapabiliriz. Bu bağlantı otomatik olarak yapılmış olabilir ve yapmanıza gerek kalmayabilir.
2. Aşağıdaki şekilde de Alsa sekmesine giriyoruz. Bu sekmede solda yer alan Virtual Keyboard (Vkeybd) kısmını, sağdaki Zynaddsubfx kısmına bağlıyoruz. Böylece Virtual Keyboard Output'unu yani çıkışını, sağ sekmede yani Input (Giriş) sekmesinde yer alan Zynaddsubfx'e bağlıyoruz (yine connect butonuyla):
[IMG]http://img37.picoodle.com/img/img37/4/7/13/f_jack3m_089ee10.png[/img] (http://www.picoodle.com/view.php?img=/4/7/13/f_jack3m_089ee10.png&srv=img37)
Böylece bağlantılarımız hazır. Sesimiz açıksa ve Jack server hatasız çalışıyorsa artık ses alabiliriz :)
Vkeybd'ye yani klavyeye farenizle basın, Zynaddsubfx'te öntanımlı ayarlanmış sesi çalabileceksiniz. Zynaddsubfx'in Instrument menüsünden yeni enstrüman seçerek sesi değiştirebilir ya da Zynaddsubfx'in menüleriyle oynarak sesi ayarlayabilirsiniz.
Şimdilik bu kadar. Temel olarak Jack kurmayı, kullanmayı biraz olsun öğrenmiş olduk. Artık sizin kurcalama zamanınız geldi. Aynı şekilde Hydrogen programını da (güzel bir davul programıdır) Vkeybd'ye bağlamak ödeviniz olabilir :D
Yararlanılan kaynaklar:
https://help.ubuntu.com/community/UbuntuStudioPreparation
https://help.ubuntu.com/community/HowToJACKConfiguration
https://help.ubuntu.com/community/HowToQjackCtlConnections
Linux Real Time kernelini yükleme işleminden sonraki yapılacak tüm işlemleri sistemi yeniden başlatıp bu kernele geçip de mi yapacağız ? Bir de MIDI ile ilgili bir soru. Tux Guitar'ı yüklediğimde ses alamıyordum. Sağ olsun atomkarinca bana timidity isimli midi synthesizerını yükletmişti çözmüştüm. Fakat gecikmeler yaşıyorum midi oynatımı sırasında. Bu sorunu aşmak için real time kerneli yükledikten sonra bu timidity silip de mi o modprobe komutunu vereceğiz ?
Şu gecikme sorununu real-time kerneli ile aştım. Şimdi jack programını bu güzel anlatımla kurabilirim ;) Eline sağlık.
Eline sağlık @ufuk_k. Gittikçe güzelleşecek bu kategori sanırım.
@ufuk_k, sağolasın. Özellikle realtime kerneli vurgulaman iyi olmuş çünkü Ubuntu'da jack server normal kernelle sorun çıkarabiliyor. Jack kullanmadığınız zaman da Linux'ta müzik yapmanın pek anlamı olmuyor zaten.
Şu midi teklemesini aşamamıştım. Sağolun açıklayıcı olmuş. Sorduğum soruların dün cevabını alamayınca kendim denedim valla nasıl oldu bilmiyorum. Oldu sonuçta sağolasın.
Daha TuxGuitar'ı rt'siz doğru düzgün çalıştıramıyorum açıkçası :) Jack programları için bir şart gibi duruyor.
arkadaşlar jack programı ile rakarrack'ı bağlıyorum fakat rakarrack'tan ses gelmiyor, yardım eder misiniZ?
rakarrack programi icin jack control yukledim burda yazılanlar gibi ama start dememe ragmen calismiyor..
söle bi hata yazıo
23:58:15.934 Patchbay deactivated.
23:58:16.135 Statistics reset.
23:58:16.224 Startup script...
23:58:16.225 artsshell -q terminate
23:58:16.243 ALSA connection graph change.
sh: artsshell: not found
23:58:17.127 Startup script terminated with exit status=32512.
23:58:17.128 JACK is starting...
23:58:17.129 /usr/bin/jackd -R -p128 -t5000 -dalsa -dhw:0 -r48000 -p128 -n2 -S
no message buffer overruns
jackd 0.116.1
Copyright 2001-2005 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
23:58:17.156 JACK was started with PID=5584.
cannot use real-time scheduling (FIFO at priority 10) [for thread -1212553536, from thread -1212553536] (1: Operation not permitted)
cannot create engine
23:58:17.186 JACK was stopped successfully.
23:58:17.187 Post-shutdown script...
23:58:17.188 killall jackd
23:58:17.334 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.
23:58:20.361 ALSA connection change.
jackd: no process killed
23:58:20.575 Post-shutdown script terminated with exit status=256.
napabilirm baska :S
Aynı sorunu ben de yaşıyorum artsshell ile ilgili bir aşamada sorun çıkartıyor ve aynı gitar yazılımını ben de kullanamıyorum real time kernel kurulumunu ve üstteki konfigürasyonları yaptım ancak olmadı :/
Öncelikle başlık güncel değil. Realtime ile ilgili paketler güncellendi, bir çok değişiklik oldu, çok fazla takip edemedim açıkçası. Qjackctl'yi başlartırken mi sorun çıkıyor? Uçbirimden çalıştırmak istediğin komutu ver ve hata mesajlarını buraya geç. Aynı sorun dediğin nedir ve kullanmaya çalıştığın gitar yazılımı nedir anlayamadım.
Eğer üstteki hata mesajını kastediyorsan, önce Qjackctl ayarlarındaki Realtime seçeneğindeki işareti kaldır ve tekrar dene. Sorun realtime ile ilgili ise ona göre çözüm bulunur.
Realtime tikini kaldırınca düzeldi. ahh neler denedim onun için artsshell scriptini yazan birisni buldum aldım metni okuttum işte line 4 okunamadı dedi hepsini tek tek ben girdim vesaire gene olmadı :D neyse çok sağolun :)
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 19 Eylül 2010 - 20:32:53
jack programı connectionsdan systemi de birbirine connectleyin arkadaşlar rakkarackdan ses alamayanlar için duyurulur ben öyle aldım sesi.
"linux-rt" pakedi bulunamadı. Nasıl kuracağım ben şimdi JACK'i?