přejít na obsah přejít na navigaci

Linux E X P R E S, Zprovoznění realtimového zvukového serveru JACK

Zprovoznění realtimového zvukového serveru JACK

jack.png

Nahrávání a zpracování zvuku je doménou platformy Windows, pro kterou je dostupná velká spousta programů, a v profesionálních podmínkách ještě spíše počítačů Apple. Nicméně i v Linuxu máme profesionální programy a nástroje, které lze použít. Následující seriál se bude těmito aplikacemi a nástroji zabývat. Začínáme tím nejdůležitějším, a to je realtimový zvukový server JACK.


JACK a jeho grafická uživatelská nadstavba QJackCtl slouží převážně muzikantům a studiovým technikům k propojení vstupů a výstupů zvukové karty a jednotlivých programů sloužících ke zpracování zvuku, a to v reálném čase, tedy s velmi nízkou latencí (zpožděním) v řádu milisekund. Zde si ukážeme, jak tento zvukový server zprovoznit. Aplikacemi využívajícími zvukový server je například harddisk recording aplikace Ardour, masteringový nástroj JAMin, univerzální realtimový efektový procesor JACK Rack a také třeba speciálně kytarový realtimový efektový procesor Rakarrack. Zmíněnými programy se budou zabývat další kapitoly seriálu.

Hned na začátek uvedu, že používám distribuci openSUSE s grafickým prostředím KDE, nicméně uvedený postup bude fungovat s drobnými odchylkami v jakékoli distribuci.

Příprava

Základním předpokladem je, že máte funkční zvukovou kartu. Dále je nutné, abyste nainstalovali zvukový server JACK, jehož název je rekurzivní zkratkou z počátečních písmen Jack Audio Connection Kit, což bývá balíček názvem jack, ale dle distribuce se může jmenovat jinak, např. jackd. Dále potřebujete grafické uživatelské rozhraní pro JACK, což je aplikace QJackCtl, a tedy zpravidla balíček qjackctl.

Hlavní okno aplikace QJackCtl Hlavní okno aplikace QJackCtl

Jak vyplývá z názvu aplikace, je tato grafická nadstavba postavena na knihovnách Qt. Grafické rozhraní pro GTK také existuje, jmenuje se JACK NetSource GUI, ovšem obávám se, že balíček v repozitářích své distribuce nenaleznete, jelikož se jedná o poměrně mladý projekt.

Když už se snažíte o realtimové zpracování zvuku, měli byste také používat realtimové (nízkolatenčnní) jádro (kernel). Balíček se může jmenovat např. kernel-rt. Když použijete klasické jádro (default, desktop, PAE, atd.), pak zapomeňte na velmi nízkou latenci bez přerušení.

S nainstalováním nového realtimového jádra je spojena i otázka instalace ovladačů grafické karty pro zprovoznění 3D akcelerované grafiky. Může se stát, že ve vaší distribuci nebudou připraveny jaderné moduly pro realtieové jádro. Pak budete nuceni nainstalovat balíčky gcc, make a balíčky zdrojových kódů daného jádra, a dále sáhnout ke klasické instalaci ovladačů stažených ze stránek jednotlivých výrobců (AMD/ATI, nVIDIA). Ještě problematičtější situace bude např. u ovladačů wifi karet, opět pro ně pravděpodobně budou chybět jaderné moduly. Tam pak situaci zřejmě zachrání NDISWrapper.

Pro možnost úspěšného spuštění zpracování zvuku v reálném čase je třeba přidat všechny uživatele, kteří s těmito nástroji budou pracovat, do privilegované skupiny uživatelů mající právo spouštět aplikace s prioritou reálného času. Tato skupina se jmenuje audio a naleznete ji v nástroji správy uživatelů a skupin. Po zařazení všech požadovaných uživatelů do této skupiny restartujte počítač. Nyní by již neměl být problém spustit Jack pomocí grafického rozhraní QJackCtl. Schválně píšu „neměl být“ problém. Někdy problém je.

Problémy

Problém se spouštěním jsem řešil na různých instalacích. Někdy vše funguje okamžitě po přidání uživatele do skupiny audio a po restartu počítače. Někdy po stisknutí tlačítka Start v okně aplikace QJackCtl vyskočí následující chybová hláška a Jack server se okamžitě ukončí.

QJackCtl – Chybová hláška QJackCtl – Chybová hláška

Po odkliknutí chybové hlášky se zobrazí okno Messages se záznamem běhu JACK serveru.

QJackCtl – Okno Messages QJackCtl – Okno Messages

Zde je důležitý řádek „...cannot use real-time scheduling (FIFO at priority 10)...“. Je tedy třeba učinit i další kroky. Najděte si soubor /etc/security/limits.conf. Na jeho konci by měly být tři řádky začínající @audio dle následujícího obrázku:

Obsah souboru limits.conf Obsah souboru limits.conf

Pakliže tam tyto tři řádky nejsou, nezbude vám nic jiného, než je tam dopsat. Soubor musíte editovat jako root (su, sudo) a po editaci a uložení opět restartovat počítač. Po restartu počítače to již prostě musí fungovat. To, co nastavují tyto tři řádky, je právě priorita procesů spouštěných uživateli ze skupiny audio a dále maximální rezervovaná paměť.

Tak, JACK server funguje, jeho další podrobné nastavení a používání prostřednictvím grafické nadstavby QJackCtl si ukážeme v dalším článku tohoto seriálu.

V nejnovějším openSUSE 11.3 již není třeba ani editovat soubor limits.conf, a dokonce ani přidávat uživatele do skupiny audio. Jack jde spustit bez problémů rovnou, nicméně přesto doporučuji tyto akce provést.

Nahoru

Odkazy

Příspěvky

realtimeové
12 11. 11. 2010, 00:51:53
Odpovědět  Odkaz 
Třeba se mýlím, ale jsem přesvědčen, že se píše realtimový, stejně jako softwarový, nikoli softwareový.
Miroslav Hrončok Re:realtimeové
Miro Hrončok 11. 11. 2010, 10:21:40
Odpovědět  Odkaz 
Řekl bych, že se nemýlíte, díky.
Zprovoznění realtimeového zvukového serveru JACK
fri 11. 11. 2010, 07:54:27
Odpovědět  Odkaz 
Napsal mi teď nedávno vývojář qjackctl, že opět přišel ten čas, kdy zanedlouho vydá novou verzi.
Zprovoznění realtimového zvukového serveru JACK
Ondřej 11. 11. 2010, 18:25:45
Odpovědět  Odkaz 
Moc se těším na pokračování a vývoj tohohle seriálu. Už jsem s kytarou a jackem několikrát koketoval ale nebavilo mě hledat po fórech řešení každého detailu..
Zprovoznění realtimového zvukového serveru JACK
mejla 22. 12. 2010, 13:05:32
Odpovědět  Odkaz 
Dobrý den,
jack mi při startu (os ubuntu 10.04) vždy zahlásí: jackd: žádný proces nenalezen - pomůže mi jen spouštět pod rootem, což si myslím není tak úplně dobře, neznáte náhodou řešení? Děkuji.

mejla.cz
Re:Zprovoznění realtimového zvukového serveru JACK
Hlavsa 7. 01. 2011, 00:26:56
Odpovědět  Odkaz 
A není to náhodou tím, že jsi si /jste si/ updatnul kernel, který není realtimový??
Zprovoznění realtimového zvukového serveru JACK
karel.barel 12. 01. 2011, 15:10:07
Odpovědět  Odkaz 
Jaka verze jadra je v tom OpenSUSE 11.3 prosim? Ptam se proto, protoze jsem zkousel kompilovat realtime kernel od verze 2.6.27 (tam se to jeste povedlo, ale vys uz ne) nahoru (tam kde existoval rt patch) s grafickym ovladacem fglrx a je to hrozna prace ....
Adam Radiměřský Re:Zprovoznění realtimového zvukového serveru JACK
Adam Radiměřský 19. 02. 2011, 20:45:33
Odpovědět  Odkaz 
V distribuci openSUSE 11.3 je defaultní jádro 2.6.34 a realtimové pouze 2.6.31. Ale já používám kernel z repozitáře Jengelh, a tam je defaultní i realtimové jádro ve verzi 2.6.33. Navíc tento repozitář obsahuje i ovladače a jaderné moduly pro karty AMD/ATI a nVIDIA.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz