niedziela, 4 listopada 2012

Wiosłem w linuxa 2, czyli z jackiem wgłąb part 1.

Dzisiaj będzie o łączeniu oprogramowania audio pod linuxem. Na początek nadmienię, że wszystkie aplikacje, które opisałem w poprzedniej notce i mam zamiar opisać dzisiaj powinny być dostępne bez większych kombinacji w repozytoriach każdej sensownej dystrybucji. Oczywiście można również zainstalować którąś z dystrybucji dedykowanych do multimediów jak np Musix GNU+Linux lub Ubuntu Studio. Dodatkowo warto napisać, ze użytkownicy standardowego (K, L, X, Ed) Ubuntu mogą zaciągnąć wszystkie aplikacje audio wchodzące w skład Ubuntu Studio korzystając ze swojego menedżera pakietów (np. muon, lub klasycznie apt-get) instalując metapakiety rozpoczynające się od ubuntustudio:
$sudo apt-get install ubuntustudio-*
Oczywiście zaciągnie to absolutnie wszystkie pakiety wchodzące w skład dystrybucji, co zasadniczo nie musi być potrzebne (ale jak ktoś ma za dużo miejsca na dysku, to czemu nie?).

Dodatkowo do tej notki zakładam, że czytelnicy nie mają problemów z podstawową konfiguracją nagrywania z wejścia mikrofonowego lub line-in swojej karty dźwiękowej (jeśli skype działa poprawnie, to właściwie nic więcej nam nie potrzeba).

Do dzisiejszej notki oprócz opisanych poprzednio guitarixa i rakarracka, potrzebujemy jeszcze co najmniej dwóch innych programów. Pierwszy z nich posłuży nam do nagrania tego, co wyjdzie spod naszych biegających po strunach palców. Programów nagrywających w  świecie linuxa jest pełno, ale ja chcę zwrócić uwagę czytelników na jeden z nich - ardour. Jest to ni mniej ni więcej tylko profesjonalny, wielościeżkowy edytor dźwięku, z mnóstwem mniej lub bardziej przydatnych opcji. Ogólnie wygląda tak:



Mamy więc trzy różne aplikacje. Gdybyśmy je teraz uruchomili, niewiele by nam z tego wyszło, bo potrzebujemy jeszcze możliwości przekazania dźwięku z jednej aplikacji do drugiej. Innymi słowy potrzebujemy komputerowego analogu kabli, wtyczek i gniazdek. W linuxowym świecie aplikacji proaudio odpowiednikiem takiego okablowania jest JACK, czyli Jack Audio Connection Kit. JACK jest daemonem, który udostępni nam mechanizmy umożliwiające połączenie wszystkich naszych aplikacji w jeden zespół oraz ich synchronizację (ważne przy stosowaniu np sekwencerów). JACK jak na daemona przystało jest zasadniczo odpalany i konfigurowany "z palca", jednak z racji, że wymagałoby to wkucia odpowiedniej ilości poleceń i ich składni, pójdziemy na skróty i skorzystamy z jednej z graficznych aplikacji do sterowania tymże. Takich programów jest kilka, osobiście na początek proponuję QJackCtl, który jest mały i łatwy w użyciu.

Tak więc jadziem z koksem.

Zacząć pracę należy od odpalenia właśnie QJackCtl:

$qjackctl
Pojawi nam się główne okno programu, wyglądające tak:



Teraz możemy skonfigurować jacka. Teoretycznie standardowa konfiguracja powinna zadziałać, ale jak to z ustawieniami uniwersalnymi, nie musi. Co więcej, prawidłowa konfiguracja jacka nie zawsze jest oczywista, i może wymagać kilku podejść (i włączonych kilku stron w przeglądarce). Klikamy więc guziczek "Setup" i robimy przegląd opcji.



Na początek sprawdzamy "driver". W większości dystrybucji będzie to "alsa", ale do dyspozycji mamy również kilka innych sterowników jak chociażby oss czy portaudio. Kolejna rzecz, to "Interface". Sprawdzenie tej opcji jest konieczne w sytuacji, kiedy nasz komputer dysponuje kilkoma kartami dźwiękowymi (np. w mojej konfiguracji mam do dyspozycji standardową zintegrowaną kartę na mobo, do tego wyjście dźwięku hdmi z karty graficznej oraz mikorofon z podłączonego przez USB webcama). Sprawdzić to warto, ponieważ nie skonfigurowany odpowiednio linux może dynamicznie zmieniać przypisania kart dźwiękowych (np. karta dźwiękowa może być jako hw:0, innym razem jako hw:1 i jeśli wybór będzie niewłaściwy, jack się nie uruchomi). Aby zobaczyć co możemy wybrać, klikamy guzik ze strzałeczką po prawej stronie i z listy wybieramy właściwą kartę.

"Input device" i "Output device" to dwie opcje, które możemy stosować zamiennie z "interface" (jeśli skorzystamy z nich, pole "Interface" się wyłączy). Ustawiamy je dokładnie tak samo jak "interface".

Na koniec powinniśmy jeszcze ustawić odpowiednio opcje "Frames/period", "Sample rate" i "Periods/buffer" - od tych trzech opcji zależy opóźnienie jakie będzie wprowadzał jack podczas przetwarzania dźwięku. Opóźnienie przy aktualnej konfiguracji jest widoczne w okienku "Latency" w prawym dolnym rogu. Sample rate powinno być zgodne z możliwościami naszej karty, natomiast w przypadku pozostałych dwóch opcji  najlepiej poeksperymentować kierując się jako wskazówką opóźnieniem (które powinno być najlepiej mniejsze niż 5ms) i faktem, że przy złej konfiguracji jack albo się nie uruchomi, albo będzie działał niestabilnie.

Klikamy "ok" i próbujemy odpalić jacka wciskając przycisk "start". Jeśli wszystko ustawiliśmy właściwie, jack wystartuje i w głównym oknie pojawi się komunikat "started".



Teraz możemy przystąpić do łączenia. Klikamy przycisk "Connect" i pojawia się okno, w którym będziemy mogli bawić się przełączaniem różnych wejść i wyjść. Lewa strona to porty wyjściowe. Tu aplikacje umieszczą porty, z których można bedzie czytać dane. Prawa strona to wejścia, czyli miejsca do których będzie można podłączać dane wysyłane z wyjść (zamotałem trochę, ale zaraz się rozjaśni).



Na starcie mamy do dyspozycji tylko dwa wpisy system. Nie wnikając w szczegóły można w skrócie (bardzo skrótowym skrócie) powiedzieć, że po lewej stronie mamy wyjścia z naszych gniazdek wejściowych karty dźwiękowej, a z prawej strony wejścia do głośników (głupie porównanie, ale lepszego nie potrafiłem wymyślić). Możemy teraz podłączyć wyjście naszego wejścia, z wejściem naszego wyjścia i posłuchać sobie mikrofonu lub gitary na głośnikach. Żeby to zrobić, łapiemy za pozycję "capture_1" i przeciągamy ją na pozycję "Playback_1". To samo robimy z opcją nr 2. Jeśli zrobiliśmy to dobrze, między pozycjami pojawią się linie oznaczające połączenie. Oczywiście nie musimy łączyć tak po prostu, ale możemy łączyć capture_1 do playback_2 i na odwrót, dzięki czemu zamienimy miejscami kanały stereo.



Teraz czas na aplikacje. Proponuję odłączyć od siebie capture i playback zaznaczając pola "system" z lewej i prawej strony i klikając przycisk "disconnect" (można też zrobić to pojedyńczo).

Uruchamiamy teraz na przykład guitarixa. Część aplikacji audio (w tym guitarix) jest tak skonfigurowana, że automatycznie utworzy odpowiednie połączenia za pomocą jacka. Po uruchomieniu programu możemy zobaczyć to w oknie "connections":



Jak widać, guitarix utworzył dwa klienty:  gx_head_amp oraz gx_head_fx i podłączył odpowiednio wejście karty dźwiękowej (lewa strona) do wejścia gx_head_amp (prawa strona), wyjście gx_head_amp do wejścia gx_head_fx, a wyjście gx_head_fx do wyjścia karty dźwiękowej. Teraz każdy dźwięk z mikrofonu lub gitary będzie przechodził przez guitarix, zanim trafi do głośników. Można już zaczynać grać korzystając z możliwości wirtualnego pieca.



Teraz wyłączmy guitarixa i włączmy rakarrack. Jak widać efekt jest podobny. Po wciśnięciu w oknie rakarracka przycisku "on" możemy już sobie poplumkać bawiąc się opcjami naszego multiefektu.



Ponieważ robi się z tego tl;dr ciąg dalszy nastąpi...

sobota, 3 listopada 2012

Wiosłem w linuxa czyli gra gitara!

Czyli linux dla gitarzystów. No, może nie tyle linux co dwie aplikacje działające pod tym systemem (wiem, więcej jest ich, ale ja na razie przedstawiam dwie, czy będzie więcej, pożyjemy - zobaczymy). Pierwsza z nich, to  Guitarix - wirtualny "piec" gitarowy z możliwością dokładania efektów. Krótko mówiąc piec z dołączonym rackiem. W niemal pełnej krasie (niestety za mały mam ekran, żeby się wszystko pomieściło) wygląda na przykład tak:



Jak widać, nawet wyglądem wzorowany jest na typowym sprzęcie używanym przez gitarzystów, choć z kilkoma "ulepszeniami" wynikającymi z wirtualności urządzenia. Po lewej stronie mamy "paletę" efektów, które możemy wykorzystać, pogrupowaną na rodzaje . Środkowa kolumna to "rack mono" czyli stos efektów nakładanych przed przekształceniem dźwięku w stereo. Trzecia kolumna to "rack stereo" czyli efekty stereofoniczne. Każdy z efektów można włączać lub wyłączać, ponadto ich kolejność można dowolnie zmieniać po prostu łapiąc za dany "wiersz" w racku i przeciągając go na nowe miejsce. Nowe efekty umieszcza się w rackach przeciągając je z palety. Aby usunąć efekt ze stosu, należy kliknąć przycisk "Config mode" i kliknąć znajdujący się na odpowiednim pasku krzyżyk. Guziki minus i plus służą odpowiednio do zwinięcia wszystkich efektów do wąskich pasków (zajmują mniej miejsca na ekranie) oraz ich rozwinięcia (widać wszystkie potrzebne pokrętełka).

Do tego wszystkiego należy dodać, że każde ustawienie można zapisać jako preset i następnie kilkoma kliknięciami przywołać, gdy na przykład chcemy zmienić brzmnienie. Oczywiście aplikacja zawiera również kilka "wbudowanych" presetów, które również są do dyspozycji.

Druga aplikacja, która powinna zainteresować gitarzystów, to znowu rack efektów. Program nazywa się zresztą odpowiednio, czyli Rakarrack. Całość programu może wyglądać np tak:



Jak widać, program ma nieco bardziej komputerowy "feeling". Nie mamy tu stylowych pokrętełek, ale zwyczajne suwaczki i okienka do wpisywania liczb. Aplikacja ma ten "minus" (o ile można to nazwać minusem), że w pojedynczej instancji rakarracka (można ich naotwierać kilka i połączyć) mieści się tylko 10 różnych efektów (w guitarixie można ich upychać ile się ma w palecie). Podobnie jak w poprzedniej aplikacji efekty możemy włączać lub wyłączać i przestawiać wedle własnego upodobania, tworząc nierzadko bardzo zaskakujące brzmienia. Dużym plusem rakarracka jest bardzo duży bank gotowych do wykorzystania presetów, od czystych i prostych brzmień, poprzez ciężkie przestery aż do niemalże dźwięków syntezowanych (polecam wypróbowanie np presetu "AutoYiYa" lub "Talk to me").

Żeby było jeszcze ciekawiej, to obie aplikacje można ze sobą łączyć traktując np Guitarix jako przedwzmacniacz, a rakarrack jako właściwy efekt (dzięki takiemu połączeniu można np zredukować co nieco zakłócenia wynikające powiedzmy ze sprzętu kiepskiej jakości).

Tu w zasadzie powinienem zaprezentować kilka próbek możliwości obu programów, ale a) mój sprzęt audio składa się ze starej rozklekotanej gitary oraz karty dźwiękowej typu "wbudowane audio" (całość połączona tanim kablem z marketu, szlycznie łapie wszelkie zakłócenia) b) gitarzysta ze mnie jak z kangura kontener, c) trochę sporo z tym zachodu a ja leniwy jestem z natury.

Tak czy siak myślę, że jeśli ktoś gdzieś na strychu trzyma gitarę elektryczną, albo akustyka i dobry mikrofon (tudzież ma akustyka z możliwością podłączenia), z których nie korzysta bo nie ma pieca i pierdyliarda drogich efektów (które na dodatek zajmują mnóstwo miejsca), to może powinien pokusić się o jakiegoś linuxa i odkurzyć zarówno wiosło jak i własne umiejętności.

Można też oczywiście powiedzieć, że dupa tam, panie szanowy, komputerowe fiu bździu! Bez lampy i to co najmniej marshalla, peaveya albo mesa boogie to wsadź se pan w buty, stopa życiowa się podniesie!

W następnym odcinku może napiszę jak to wszystko ze sobą połączyć i nagrać kilka nutek.