2006-12-19

 

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.

Comments: Skicka en kommentar



<< Home

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