QjackCtl – Interfejs graficzny dla JACK | Część 1

QjackCtl to nic innego jak nakładka graficzna na serwer dźwięku JACK. Oprócz sterowania kluczowymi parametrami JACK Audio Connection Kit umożliwia łatwe łączenie za jego pośrednictwem wszelakiej maści pluginów, wtyczek czy innych urządzeń, które są w stanie współpracować z tym serwerem dźwięku.

 

W życiu nie należy się przemęczać – zapewne do takiego wniosku doszedł autor powyższego interfejsu i chwała mu za to bowiem zamiast mozolnego obsługiwania JACKa przez terminal, zaoferował nam przejrzystą, łatwą w obsłudze, nakładkę graficzną, gdzie wszystkie ustawienia możemy sobie „wyklikać”. Ponadto dzięki tej małej aplikacji, w jej oknie głównym, mamy na bieżąco podgląd kluczowych parametrów serwera dźwięku, takich jak: generowane przezeń obciążenie procesora, status pracy w czasie rzeczywistym, częstotliwość próbkowania, położenie transportu, czy monity o błędach XRUN (jeśli wystąpią).

 

Na poniższym zrzucie ekranu widać okno główne QjackCtl. Wszystkie powyższe informacje są prezentowane na wyświetlaczu, natomiast dookoła znajdują się przyciski realizujące różne funkcje, które teraz omówimy. Znaczenia przycisków Start i Stop raczej nie trzeba przedstawiać – służą do uruchamiana/zatrzymywania serwera dźwięku.

 

QjackCtl - okno główne programu

 

Przycisk Messages otwiera/zamyka okno z komunikatami programu „drukującymi” się w ogromnych ilościach zwłaszcza w momentach, gdy dzieje się coś złego. Jest ono bardzo przydatne, gdy zachodzi potrzeba przeprowadzenia szybkiej diagnostyki. Znajdziemy w nim sporo informacji, niezbędnych do wykrycia źródła problemu. Gdy coś jest nie tak z dźwiękiem w trakcie sesji jest to zazwyczaj pierwsze miejsce, w które zaglądamy.

 

Kolejnym przyciskiem jest Session, po naciśnięciu którego otworzy się okno, służące do zarządzania sesją. Możemy z jego pomocą zapisać bieżące połączenia audio pomiędzy poszczególnymi elementami rozbudowanego systemu dźwiękowego, dzięki czemu przy następnym podejściu do sesji i otwarciu wszystkich aplikacji, wykonane wcześniej skojarzenia będziemy mogli łatwo przywrócić, bez tracenia czasu na ręczne łączenie.

 

Wirtualna Krosownica

Następny przycisk – Connect – otwiera okno, w którym będziemy dokonywać połączeń pomiędzy syntezatorami, efektami, DAW i innymi składnikami systemu. Podzielone jest ono na dwie części: w lewej znajdują się wszystkie dostępne wyjścia aplikacji, w prawej, natomiast, wejścia. Na górze widnieją trzy zakładki: Audio, MIDI i ALSA, grupujące wejścia/wyjścia w zależności od tego z jakim ich rodzajem mamy do czynienia.

 

Okno connections służące do wzajemnego kojarzenia pluginów

 

Skojarzyć wejście z wyjściem możemy dwojako: korzystając z menu kontekstowego, albo używając przycisków w dolnej części okna. W pierwszym przypadku, najpierw zaznaczamy lewym przyciskiem myszy port klienta w jednej części okna, a później w przeciwnej klikamy prawym przyciskiem drugi. Rozwinie się „pull down menu”, z którego wybieramy stosowną opcję. Jeśli chodzi o drugą metodę, to samo osiągniemy zaznaczając porty po obydwu stronach i klikając odpowiedni przycisk na dole: Connect lub Disconect. Disconnect All działa zawsze i wszędzie. Działanie Expand All i Refresh wypróbujcie sami – nie stanie się nic złego, a na pewno jeszcze nie raz się przydadzą.

 

Wszystko fajnie, tylko co się stanie, gdy postanowimy zatrzymać na chwilę serwer JACK? Kaplica! Otóż, wszystkie dotychczasowe połączenia ulegną zresetowaniu, a my będziemy musieli zaczynać pracę od nowa. Jeśli zapisaliśmy wcześniej sesję, uda się przynajmniej odzyskać połączenia audio. A co z MIDI i ALSA?

 

Na ratunek przychodzi Patchbay. W rzeczywistości jest to wirtualna krosownica umożliwiająca zapamiętanie połączeń stworzonych za pomocą Connections w formie profili połączeń (patchbay definnitions), ich zapisywanie do pliku (Save), wczytywanie (Load) i aktywowanie w wybranym przez nas momencie (Activate). Nie wiem czy przypominacie sobie jak w serii artykułów o masteringu w JAMinie pisałem o scenach. Funkcja Patchbay jest podobna, z tą różnicą że Patchbay zastosowanie znajdzie raczej w przypadku grania utworów na żywo.

 

przykladowe polaczenia miedzy pluginami w cyfrowej krosownicy patchbay

 

Na powyższym screenshocie widać przykładowe połączenia. Co warto zaznaczyć, po zaimportowaniu połączeń przyciskiem New mamy tutaj wyświetlone wszystkie wejścia/wyjścia naraz. O ile w powyższym przykładzie obraz jest dość przejrzysty to przy większej ilości wtyczek (syntezatorów, efektów) i wykorzystywaniu różnych typów gniazd (Audio, MIDI, ALSA) robi się niezła sieczka i aby podejrzeć całość trzeba okno rozciągać do monstrualnych rozmiarów.

 

Aby złącza nie wisiały nam w powietrzu a tym samym zaoszczędzić trochę miejsca, przy kreacji nowego profilu, gdy wyskoczy okienko z pytaniem czy zaimportować połączenia z Connections, dajemy „No”. Następnie za pomocą przycisków Add po obu stronach okna dodajemy odpowiednie gniazda (Socket), które będziemy później ze sobą łączyć. Po kliknięciu Add wyskakuje takie okienko jak poniżej.

 

Okno socket

 

W polu Name (alias) podajemy jakąś rozpoznawalną nazwę. Ja sobie jeszcze ułatwiam i lubię umieścić tam informację na temat standardów połączeń: Audio, MIDI czy ALSA. W polu Client wybieramy wtyczkę zaś pole Plug wyświetla dostępne wejścia/wyjścia w wybranym standardzie. Przyznam, że dotychczas nie rozszyfrowałem do czego służy kontrolka Exclusive oraz Forward. Jeśli wiecie to dajcie znać w komentarzach albo na e-mail.

 

Gdy już pododajemy wszystkie niezbędne gniazda wejścia – wyjścia łączenia ich dokonujemy analogicznie jak w przypadku okna Connections. Plus jest tutaj taki, że możemy sortować listę za pomocą przycisków Up/Down, co dodatkowo poprawia przejrzystość tej cyfrowej krosownicy. Z resztą spójrzcie na poniższą ilustrację – prawda, że tak wygląda to lepiej niż poprzednio?

 

Cyfrowa krosownica Patchbay - wszystko na swoim miejscu

 

Do omówienia zostało jeszcze okno ustawień otwierane po kliknięciu Setup bo wierzę, że przyciskami Quit i About nie będziemy się musieli zajmować 😉 Ale o tym już następnym razem.

 

Jeżeli czegoś nie zrozumieliście, lub coś jest zbyt chaotycznie wytłumaczone, to dajcie znać w komentarzach a postaram się odpicować ten poradnik jak najlepiej. Jeśli się przydał to podzielcie się opinią. Cześć 🙂

 

3 odpowiedzi na: „QjackCtl – Interfejs graficzny dla JACK | Część 1”

  1. Włodek napisał(a):

    Po prostu dobry tekst. Mój znajomy bawi się czasami w robienie muzyki. Jesteś w stanie na podstawie swojego doświadczenia polecić jakąś fajną dystrybucję. Tak żeby miała, bo ja wiem, specjalnie skonfigurowany kernel pod dźwięk. Oraz żeby takie front-endy jak ten przedstawiony przez Ciebie, bo kolega raczej nie zna GNU/Linuxów. Chodzi o to żeby usiadł i tworzył. Jakiś pomysł?

    • Vibender napisał(a):

      Śmiało mogę polecić Ubuntu Studio 🙂 Nie tylko do tworzenia muzyki, bo to dystrybucja do obróbki różnych multimediów. Razem z systemem preinstalowana jest ogromna liczba aplikacji muzycznych, tak więc na starcie dostajesz gotowy do pracy system. Powyższy JACK też jest na pokładzie. Później oczywiście warto co nieco powyrzucać, pododawać i w ogóle spersonalizować dystrybucję pod własne potrzeby. Ubuntu Studio obecnie posiada kernel lowlatency. Wcześniej było jądro realtime. Obydwa dobrze się spisują w zastosowaniach audio zapewniając niskie opóźnienia przy nagrywaniu/odtwarzaniu sygnału.

  2. Włodek napisał(a):

    Dzięki. W sumie to trochę takiej odpowiedzi oczekiwałem, bo w ciemno mu właśnie ją poleciłem z racji tego, ze lista preinstalowanych aplikacji była zadowalająca, a jako że to *buntu to nie będzie problemu z ewentualnym wsparciem. No i Xfce nie będzie działało rozpraszająco. Tylko zacząłem wątpić jak się okazało, że distr robionych dla muzyków czy ogólnie artystów trochę jest. W każdym razie dzięki za podpowiedź i uspokojenie. 😉 Pozdrawiam.

Dodaj komentarz

Do formatowania tekstu możesz użyć następujących tagów oraz atrybutów HTML-a:

  • <strong> wytłuszczenie </strong>
  • <em> emfaza </em>
  • <a href="" title=""> hiperłącze </a>
  • <abbr title=""> skrótowiec </abbr>
  • <code> kod źródłowy </code>