Gönderen Konu: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon  (Okunma sayısı 2232 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

ufuk_k

  • Ziyaretçi
Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon


Bu 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:

Kod: [Seç]
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.

Kod: [Seç]
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:

Kod: [Seç]
sudo modprobe snd-seqEğer bu modülün yüklenmesi sorunumuzu çözüyorsa, kalıcı hale getirmek için:

Kod: [Seç]
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:

Kod: [Seç]
sudo apt-get install ardour hydrogen jackd jack-rack qjackctl seq24 vkeybd zynaddsubfx patchage ubuntustudio-controls ubuntustudio-menu
Efekt Eklentileri ve Enstrümanlar:

Kod: [Seç]
sudo apt-get install blop caps cmt fil-plugins ladspa-sdk mcp-plugins omins swh-plugins tap-plugins
Kod: [Seç]
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.org/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:

Kod: [Seç]
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ı:




Ş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ı
ALSA: 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:



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):



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

« Son Düzenleme: 13 Temmuz 2008 - 20:55:12 Gönderen: ufuk_k »

Çevrimdışı DeFacto

  • Okeye Dördüncü
  • *
  • İleti: 877
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #1 : 13 Temmuz 2008 - 21:23:12 »
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 ?

Çevrimdışı DeFacto

  • Okeye Dördüncü
  • *
  • İleti: 877
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #2 : 13 Temmuz 2008 - 22:37:26 »
Şu gecikme sorununu real-time kerneli ile aştım. Şimdi jack programını bu güzel anlatımla kurabilirim ;) Eline sağlık.

Çevrimdışı heartsmagic

  • Proje Sorumlusu
  • *
  • İleti: 22168
    • HeartsMagic.Net
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #3 : 13 Temmuz 2008 - 23:13:07 »
Eline sağlık @ufuk_k. Gittikçe güzelleşecek bu kategori sanırım.

Çevrimdışı atomkarinca

  • Çay Uzmanı
  • *
  • İleti: 1961
  • Archer!
    • Ain't it nice to be free?
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #4 : 13 Temmuz 2008 - 23:17:19 »
@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.

ufuk_k

  • Ziyaretçi
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #5 : 14 Temmuz 2008 - 02:12:39 »
Teşekkürler.
Bütün ayarları yapmanıza rağmen,

Alıntı
cannot use real-time scheduling (FIFO at priority 10) [for thread
-1210784080, from thread -1210784080] (1: Operation not permitted)
cannot create engine

 şeklinde Messages kısmında realtime çalışmaya yetki olmadığına dair bir hata alıyorsanız:

Kod: [Seç]
sudo usermod -G audio kullanici şeklinde kendi kullanıcınızı audio grubuna eklemeniz gerekir. Ya da /etc/group dosyasını açarak:

Kod: [Seç]
gksu gedit /etc/group
Alıntı
audio:x:29:kullanici

 şeklinde audio kısmına kullanıcı adınızı ekleyerek de yapabilirsiniz. Bu durumla ben daha önce Ubuntu'da karşılaşmamıştım, fakat Ubuntu Server sürümünü kullandığımdan, böyle bir farkılık olabilir diye düşünüyorum. Çoğunlukla buna gerek olmayacaktır masaüstü sürümlerinde.

Çevrimdışı erginemr

  • Ubuntero
  • *
  • İleti: 4705
  • Dağıtım: Ubuntu
  • Sürüm: 9.10 Karmic Koala
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #6 : 14 Temmuz 2008 - 11:33:29 »
Eline sağlık @ufuk_k,

Güzel ve detaylı anlatımın, müzisyen penguenler için tam bir başucu kaynağı oldu. Jack ile ilgili kafamdaki pek çok soruya da yanıt verdi.

Çevrimdışı DeFacto

  • Okeye Dördüncü
  • *
  • İleti: 877
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #7 : 14 Temmuz 2008 - 20:41:32 »
Ş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.

Çevrimdışı munirekinci

  • Çay Keyfi
  • *
  • İleti: 1563
    • munirekinci.wordpress.com
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #8 : 14 Temmuz 2008 - 21:57:26 »
Ellerine sağlık.

Çevrimdışı Felâsife

  • Limonlu Çay
  • *
  • İleti: 1112
    • Doctus
  • Dağıtım: Debian
  • Sürüm: Squeeze
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #9 : 05 Ekim 2008 - 12:48:01 »
Çalışma için teşekkürler
Bu Jack'ı rt kernel olmadan kullanamıyor muyuz?
Yani şu an kullandığım 2.6.24-19-generic kernel de kullanamaz mıyım?

RT yükledim ve sistemi onunla da açtım ama rt-kernel ben de sorun verdi, ekran kartı sürücüsünü yok saydı ve envy yüklemek zorunda kaldım onunda 3D ayarları olmadı vs vs.

Jack çalıştırdım, gerçi sonradan o da bozuldu ya Neyse daha fazla yazıp vakit almayayım, Normal kernelde Jack'ı çalıştırabilir miyiz?
Debian
Base system installed successfully...


Çevrimdışı DeFacto

  • Okeye Dördüncü
  • *
  • İleti: 877
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #10 : 06 Kasım 2008 - 22:18:18 »
Daha TuxGuitar'ı rt'siz doğru düzgün çalıştıramıyorum açıkçası :) Jack programları için bir şart gibi duruyor.

Çevrimdışı atomkarinca

  • Çay Uzmanı
  • *
  • İleti: 1961
  • Archer!
    • Ain't it nice to be free?
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #11 : 07 Kasım 2008 - 11:05:44 »
Çalışma için teşekkürler
Bu Jack'ı rt kernel olmadan kullanamıyor muyuz?
Yani şu an kullandığım 2.6.24-19-generic kernel de kullanamaz mıyım?

RT yükledim ve sistemi onunla da açtım ama rt-kernel ben de sorun verdi, ekran kartı sürücüsünü yok saydı ve envy yüklemek zorunda kaldım onunda 3D ayarları olmadı vs vs.

Jack çalıştırdım, gerçi sonradan o da bozuldu ya Neyse daha fazla yazıp vakit almayayım, Normal kernelde Jack'ı çalıştırabilir miyiz?



Kernel rt olmak zorunda değil. Sadece rt olduğunda daha iyi sonuçlar alınabiliyor. Eğer Jack'i çalıştırdığınızda hata veriyorsa Setup dümesine basıp Realtime seçeneği işaretliyse bu işareti kaldırıp tekrar deneyin.

Çevrimdışı atomkarinca

  • Çay Uzmanı
  • *
  • İleti: 1961
  • Archer!
    • Ain't it nice to be free?
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #12 : 07 Kasım 2008 - 11:09:17 »
Daha TuxGuitar'ı rt'siz doğru düzgün çalıştıramıyorum açıkçası :) Jack programları için bir şart gibi duruyor.


TuxGuitar sürümünüz 1.0 veya daha yüksekse ne rt kernel'e ne de Jack'e ihtiyacınız var. Buradan soundfont'u indirin ve dilediğiniz bir klasöre açın, daha sonra TuxGuitar'ın Tools menüsünden Plugins >> Java Sound Api Plugin'i seçip Configure düğmesine basın, Use Costum Soundbank'i seçip açtığınız soundfont'un bulunduğu klasörü gösterin. Bu şekilde RSE kadar kaliteli sesler elde edebilirsiniz.

Çevrimdışı Felâsife

  • Limonlu Çay
  • *
  • İleti: 1112
    • Doctus
  • Dağıtım: Debian
  • Sürüm: Squeeze
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #13 : 08 Kasım 2008 - 02:13:03 »
Kernel rt olmak zorunda değil. Sadece rt olduğunda daha iyi sonuçlar alınabiliyor. Eğer Jack'i çalıştırdığınızda hata veriyorsa Setup dümesine basıp Realtime seçeneği işaretliyse bu işareti kaldırıp tekrar deneyin.

8.10 güncellemesinden sonra Jack, rt filan ortalardan kaybolmuş, ama onu da denemiştim olmamıştı.
Ben artık yeni bir kurulum yaparım boş bir vaktim de
Cevap için teşekkür ederim. :)
Debian
Base system installed successfully...


Çevrimdışı wallkan

  • Çay Yaprakları
  • *
  • İleti: 64
Ynt: Jack Kullanımına Giriş: Hazırlıklar ve Temel Konfigurasyon
« Yanıtla #14 : 16 Ağustos 2009 - 01:17:46 »
arkadaşlar jack programı ile rakarrack'ı bağlıyorum fakat rakarrack'tan ses gelmiyor, yardım eder misiniZ?