2006-12-19

 

JACK - QJackCtl


Figur 1: Huvudfönstret i QJackCtl

QJackCtl kan användas för att konfigurera Jack, under knappen Setup.

Här kan bland annat ställas in om man vill att Jack ska köras i realtid, vilken storlek det ska vara på ljudbufferten (Frames/Period), vilken samplingsfrekvens som ska användas och hur många perioder som ska användas (Periods/Buffer). Man kan även ställa in med vilken prioritet Jack-servern ska köras, vilken drivrutin som skall användas osv. Under Display-fliken går det även att ställa in att alla kopplingar ska ritas ut med bezier-kurvor istället för raka linjer, vilken ökar läsbarheten en aning.


Figur 2: Inställningsfönstret i QJackCtl

I nedre högra hörnet visas ett uträknat värde på latency vid olika buffertstorlekar och samplingsfrekvenser. Det ändras när inställningarna gör det.

PATCHBAY

I patchbay-fönstret kan man spara en aktuell konfiguration, skapa nya kopplingar eller modifiera befintliga.


Figur 3: Patchbayfönstret i QJackCtl

Formatet på spar-filen är XML. Patchbay-fönstret är bra att använda när man t ex har en speciell kopplingshierarki i Jack och vill spara den för att arbeta senare. Man sparar då både MIDI- och Audio-kopplingar i en och samma fil.


CONNECTIONSFÖNSTRET


Figur 4: Connectionsfönstret i QJackCtl

Connectionsfönstret används för att göra audio- och MIDI-kopplingar mellan programmen. Det har två flikar, en för ljud och en för MIDI. Att koppla ihop två portar sker genom att man markerar dem och klickar på Connect.

 

JACK - grunder

JACK (Jack Audio Connection Kit) är ett lager som finns mellan ALSA och de program som används.

Jack används för att transportera ljud-data mellan olika program och ljudenheter, med sig själv i mitten som en typ av kopplingsplint. Den är byggd för låg latency och för synkron uppspelning. Jack är motsvarigheten till Windows-världens ASIO och WDM och till Mac-världens CoreAudio och GSIF, eller ReWire och DirectConnect.

Jack kan även användas till att sända internet-radio via Icecast, skapa AC3-ljud från fem ljudkällor, eller skriva ner ljuddata till filer på hårddisken.

Tyvärr har Jack lite svårt att samexistera med andra ljudhanterare, såsom esd, aRts och andra. Det kan därför vara nödvändigt att starta upp Jack medan inga andra program använder ALSA, eller om de gör det, stänga av programmen för att starta upp Jack först.

JACK KOMMANDOVÄXLAR

Jack i sig själv har inget grafiskt gränssnitt, men det finns några grafiska klienter till Jack, varav QJackCtl är den vanligaste. Alla inställningsmöjligheter i QJackCtl har som sig bör motsvarigheter om man kör Jack från kommandoraden. Syntaxen för dessa är dock en aning förvirrande. Till exempel kan -d användas två gånger på samma rad med olika betydelser. Det finns dessutom -D som betyder en tredje sak. Intrigen tätnar.

Först och främst, när man använder Jack bör man specificera vilken drivrutin man ska använda för att köra servern. Detta gör man med växeln -d. För att använda Jack med ALSA-drivrutinen skriver man:

jackd -d alsa


Andra drivers som kan användas är coreaudio, dummy, oss, portaudio eller om man har firewire-stöd inkompilerat; freebob. Absolut vanligast är att köra med alsa eller freebob.

Om vi fokuserar på alsa-drivrutinen så har den ett antal inställningsmöjligheter, bland andra:

För att återgå till de allmäna kommandona för Jack är -R (eller --realtime) den som ändrar Jack till att köra i realtidsprioritet. Man kan även sätta vilken prioritet man vill köra Jack i med växeln -P och ange ett nummer mellan 0 och 100. Rekommenderat värde är någonstans nära 70, se annan artikel.

JACKSTART

Ett annat program, eller egentligen samma fast med andra växlar, är jackstart, som startar jackd-servern med realtidsegenskaper för vanliga användare. Har man en realtidskärna är detta det rekommenderade sättet att starta Jack.

Ett exempel, att starta Jack med ALSA på första ljudkortsenheten med samplingsfrekvensen 96kHz, en buffertstorlek på 2x256 samples och prioritet 70 ger:
jackstart -R -P 70 -d alsa -r 96000 -p 256 -n 2 -d hw:0

Ett stående tips är att kolla vad det finns för olika drivrutiner genom att köra jackstart/jackd med växeln --help:


jackd -d alsa --help
jackd -d coreaudio --help
jackd -d dummy --help
jackd -d freebob --help
jackd -d oss --help
jackd -d portaudio --help



NÖDVÄNDIGA INSTÄLLNINGAR


Förutom att få till Jack, bör man även skapa sig ett litet temporärt filsystem som Jack kan använda för att temporärspara sin data. De flesta Linux-distributioner idag har journalförande filsystem (Ext3, XFS, ReiserFS etc.), vilket gör att data bara skrivs med vissa intervaller. Vid ljudhantering i realtid producerar detta XRUNS (buffertspill).

Man konfigurerar detta genom att i sin filsystems-tabell /etc/fstab skriva in följande på en egen rad:

none /tmp/jack tmpfs defaults 0 0


Editera genom att (som root) t ex skriva:

nano /etc/fstab


Det finns andra sätt att optimera sitt system, och dessa kommer vi att gå igenom i ett annat avsnitt.

This page is powered by Blogger. Isn't yours?