Udviklet af | Paul davis |
---|---|
Sidste version | 1.9.17 (15. januar 2021) |
Depositum | git: //github.com/jackaudio/jack2.git og git: //github.com/jackaudio/jack1.git |
Skrevet i | C ++ og C |
Operativ system | Unix-type |
Miljø | POSIX |
Type | Lydserver |
Licens | GNU GPL |
Internet side | jackaudio.org |
JACK , rekursivt akronym af J ACK A udio C onnection K it, er software til sammenkobling af lydapplikationer til Unix-systemer som GNU / Linux og macOS og også til Windows . Det blev designet til at opnå forbindelser i realtid med lav latenstid og synkron udførelse af sine lyd- og MIDI- klienter . Bortset fra at være på tværs af platforme er det en af de to vigtigste lydservere under Linux sammen med PulseAudio, som er mere kontor- og spilorienteret.PipeWire , inspireret af Gstreamer, sigter mod at forene disse to lydservere såvel som videostrømmene.
Det er udviklet af et samfund af open source-udviklere ledet af Paul Davis (som vandt en Open Source Award i 2004 for sit arbejde) og har været et centralt element i infrastrukturen og en de facto standard for professionel lydsoftware. På Linux siden dets optagelse i 2002.
Serveren er FLOSS under GNU GPL- licens , mens biblioteket er under den mere tilladte GNU LGPL- licens .
Lydserveren køres som en dæmon ved hjælp af jackd- programmet . Det kan styres ved hjælp af forskellige grafiske grænseflader, hvoraf den mest berømte er qjackctl .
JACK gør det muligt at sammenkoble ind- og udgange fra alle sine klienter meget enkelt: musen bruges til at oprette forbindelser på samme måde som kabler ville blive brugt på en scene eller i et studiestudie. Dette gør det muligt at udføre enhver samling, som brugeren finder nyttig.
JACK kan bruge ALSA , Portaudio , CoreAudio , FreeBoB , FFADO og OSS hardwaredrivere . Derudover er en dummy-driver inkluderet (nyttig, hvis der ikke ønskes lydudgang, f.eks. Til offline- gengivelse ) og en Audio-over-UDP-driver (nyttig til betjening af serveren på et netværk, som helst skal dedikeres). Det kører på Linux , macOS , Solaris , Windows , FreeBSD , OpenBSD og NetBSD . JACK API er standardiseret ved konsensus, og der er to kompatible implementeringer: jack1, som er implementeret i C , og jack2 (oprindeligt jackdmp) blev implementeret i C ++ under tilsyn af Stéphane Letz. Denne seneste implementering er i hurtig udvikling, den introducerede understøttelse af flere processorer og support til andre operativsystemer end Linux.
I modsætning til andre lydservere, hvor applikationer sender deres data til serveren, bruger JACK en model, hvor serveren dikterer hvornår og i hvilken rækkefølge applikationer skal sende lyd- eller MIDI-data til den.
JACKs behov for planlægning med lav latens var en af drivkræfterne bag realtidsoptimeringsindsatsen for den nuværende 2.6-serie af Linux-kernen, mens den oprindelige latenstensydelse havde været skuffende i forhold til den gamle. Arbejdet med at introducere realtid i Linux-kernen er i gang. Mange planlægningsforbedringer er allerede blevet foretaget, og -rt-grenen blev oprettet til mere påtrængende optimeringer med version 2.6.24 og senere fra patch CONFIG_PREEMPT_RT. Fra og med denne dato integreres et af hovedfunktionerne i -rt-patch (de tvangsgjorte irq-håndterere) i Linux-kernen.
Der er tre hoved JACK-sessionschefer, som findes under de forskellige Linux-distributioner, der har avanceret lydsupport:
Et stort antal applikationer er kompatible med JACK, og deres liste vokser over tid. Dette store antal applikationer og muligheden for at forbinde dem frit betyder, at de eneste praktiske grænser for et lydcomputersystem, der bruger denne lydserver, er maskinens kraft og brugerens fantasi. Nyere versioner af JACK gør det også muligt at distribuere lydberegninger på flere maskiner via netværket .
Nogle Linux-distributioner som Kxstudio , LibraZiK, Ubuntu Studio , DeMuDi , gruppe pakker Pro Audio af Arch Linux har gjort deres server standard.