JACK Audio Connection Kit

JACK Audio Connection Kit (JACK) er ein miksar/tenar som sit mellom lydhandsamarprogram på brukarnivå og ein lågniva lydhandsamingsinfrastruktur som ALSA i Linux-kjernen, OSS på UNIX, Core Audio på Mac OS X og ASIO på Windows. JACK vart frå grunnen konstruert for proffesional bruk, der låg forsenking er viktig.

Oppbygging 
Funksjonaliten og programmeringsgrensesnittet til JACK er på eit høgare nivå enn underliggande lydhandsamingsinfrastruktur som ALSA, OSS, FFADO, CoreAudio, ASIO og PortAudio. JACK inneheld funksjonaliten som tillet utveksling og miksing  av audiostraumar mellom ulike prosessar (tenarar og brukarprogram), grensesnitt og lydkort. JACK abstrakterer grensesnittet mellom ulike processar, og tek seg av trådhandsaming og synkronisering, slik at programmeraren kan konsentrera seg om å skriva kode for funksjonalitet. Internt i JACK vert kvar audiosample representert på enkelpresisjon flytkommaformat. JACK tek hand om konvertering til/frå 16- og 24-bit fastkommarepresentasjon som I/O-einingane nyttar. 

JACK er bygd opp av fleire modular: jackd er ein tenarprocess (eller «deamon» om ein nyttar UNIX-terminologi) og libjack er eit biblioteket som brukarprogamma linkar til. 
Som anna lydhandsamingprogramvare kommuniserer JACK med drivarane via attendekallfunksjonar. I tillegg til å ruta audiostraumar mellom brukarprogram som køyrer som eigne prosessar kan JACK òg utvidast med plugin som nyttar prosesskontekst som JACK.

JACK nyttar funksjonaliteten som er innebygg i den underliggande infrastrukturen og innfører ikkje forseinking ut over forseinking som stammar frå ALSA eller CoreAudio. Det ekstra laget med programvare i JACK innfører litt ekstra arbeid for prosessoren, men ekstralasta er ikkje meir enn rundt 1% .

JACK på fleire operativsystem 
JACK vart utvikla for Linux, men køyrer òg på fleire UNIX-liknande operativsystem, som BSD, FreeBSD, NetBSD, OpenBSD og Mac OS X. JackOSX er ei programvarepakke som tilpassar JACK for Apple CoreAudio. JACK kan lett tilpassast alle operativsystem med POSIX-grensesnitt. Etter som Windows òg har eit POSIX-grensesnitt (i tillegg til WinAPI) kan JACK nyttast på Windows-maskinar. I praksis er det likevel ASIO som er mest utbreidd  nytta i samband med profesjonell lydhandsaming på Windows-maskinar.

Verktøy 

JACK har fleire små program som utfører ymse oppgåver.

qjackctl 
qjackctl er eit Qt-basert grafisk controllprogram for JACK. qjackctl let brukaren oppretta forbindelsar mellom ulik lydkjelder, tenarar, brukarprogram og utgangar ved å ta tak i kjelder med markøren og dra dei til program og/eller utgangar .

jack_lsp 
jack_lsp er eit kommandolinjeverktøy som listar informasjon om I/O-portane som JACK kjenner til.

NetJack 
NetJack er ein modul som utvidar JACK med nettfunksjonalitet. NetJack har ein «meister» som sender ein audiostraum og ein eller fleire mottakarar (slavar) som tek imot audiostraumen. NetJack syt for at alle mottakarane er synkroniserte med sendaren, slik at det ikkje oppstår datatap.

Brukarprogram som nyttar JACK 
 Aeolus: pipeorgelsyntisiser
 Aqualung: GTK+baset spelar
 Ardour: digital audioarbeidsstasjon for Linux og Mac OS X
 Baudline: signalanalyseverktøy
 CheeseTracker: Impulse Tracker-klone
 ChucK: sanntidsprogrammeringsspråk for musikksyntese
 energyXT2: musikksekvensar
 Freqtweak : spektralanalyseprogram
 Hydrogen: trommesyntisiser
 JACK Rack: LADSPA  effektrack
 LMMS: syntisiser for Linux, Mac OS X og Windows
 Pure data: grafisk datastraumorientert programmeringsmetode
 SuperCollider: sanntidsprogrammeringsspråk
 MusE: Qt-basert syntisiser
 Renoise: Tracker (musikksekvenser)
 Rosegarden: audio- og MIDIsekvensar
 XMMS: lydavspelar
 ZynAddSubFX: syntisiser

Kjelder

Sjå òg 
 Lydkort

OpenBSD-audio
Lydtenarar
Lydstrauming
BSD-lydsystem
NetBSD-lydsystem
OS X-lydsystem
Unix-lydsystem
FreeBSD-lydsystem
Windows-lydsystem
Lydprogrammeringsgrensesnitt