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, OSSUNIX, Core AudioMac OS X og ASIOWindows. JACK vart frå grunnen konstruert for proffesional bruk, der låg forsenking er viktig[2].

JACK Audio Connection Kit


UtviklarPaul Davis
Nyaste versjon1.9.22 (2. februar 2023)[1]
OperativsystemUnix-variant, macOS, Microsoft Windows
Skriven iC++, C
TypeLydtjener
LisensGNU General Public License
Nettstadhttps://jackaudio.org

Oppbygging

endre

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[3].

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% [2].

JACK på fleire operativsystem

endre

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

endre
 
qjackctl.

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

qjackctl

endre

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 [4].

jack_lsp

endre

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

NetJack

endre

NetJack er ein modul som utvidar JACK med nettfunksjonalitet[5]. 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

endre

Kjelder

endre
  1. «Release 1.9.22». 2. februar 2023. Henta 15. februar 2023. 
  2. 2,0 2,1 JACK Audio Connection Kit
  3. Jack-audio-connection-kit, 13/10-2010.
  4. HowToQjackCtlConnections, help.ubuntu.com, 14/7-2009.
  5. Mills, D. og Jonsson, R., NetJack - Jack Over The Net, sourceforge.net/.

Sjå òg

endre