JACK Audio Connection Kit
JACK Audio Connection Kit of kortweg JACK is een high-bandwith-, low-latency-audioserver geschreven voor POSIX-besturingssystemen zoals Linux, Unix en Mac OS X, maar ook beschikbaar voor Windows. JACK kan verschillende audioapplicaties verbinden met het audioapparaat en kan ook audiodata delen tussen de verschillende applicaties onderling. De clients kunnen werken als een eigen proces of als plug-in in de JACK-server. OverzichtIn april 2001 begonnen de mensen van de linux-audio-dev-lijst de noodzaak te zien van een systeem dat high-bandwidth-, low-latency-, sample-synchronised-datacommunicatie tussen verschillende onafhankelijke audioapplicaties mogelijk maakte. Zo'n systeem moest een robuuste prestatie leveren, ook bij systemen met veel CPU-belasting. Het project kreeg de naam LAAGA (Linux Audio Applications Glue API). In de herfst van 2001 werd een eerste implementatie (een afleiding van de broncode van Ardour) bekendgemaakt onder de naam JACK, een acroniem van JACK Audio Connection Kit. JACK heeft de doelen van LAAGA grotendeels ingevuld, hoewel JACK nog steeds in ontwikkeling is. Oorspronkelijk werden de audiobron, de effecten, de sequencer enzovoorts bestuurd door hardware die door middel van een kabel aan elkaar gekoppeld was. Het probleem was dan de invoer/uitvoer van die hardware naar en van het pc-systeem. De laatste jaren is het de trend die hardware als programmatuur te implementeren op dezelfde machine. Er ontstond toen een nieuw probleem: in plaats van de hardware te verbinden met elkaar was er een eenduidige manier nodig om de verschillende softwareapplicaties met elkaar te laten communiceren. JACK maakt het mogelijk de verschillende audioapplicaties onderling met elkaar te verbinden, net zoals de hardware aan elkaar werd gekoppeld. Traditioneel was het zeer moeilijk om audioapplicaties te schrijven die hun audiodata met elkaar konden delen. JACK bracht hier verandering in door een API te verzorgen die hoofdzakelijk twee dingen doet:
JACK beschikt over een callback-functie die audiodata kan verzenden en ontvangen en andere audioverwerkingstaken kan uitvoeren. Alle audiodata in JACK worden voorgesteld als 32-bitswaarden met zwevende komma. JACK is ontworpen om één server te draaien en meerdere clients, die dan onderling verbonden zijn. JACK kan ook meerdere servers draaien, maar iedere JACK-server heeft zijn eigen audio-set-up; onderling zijn de JACK-servers niet met elkaar verbonden. JACK gebruiken met een audioapplicatie is eenvoudig en bestaat normaal gesproken uit de volgende vier stappen:
JACK komt zelf niet met een GUI (Graphical User Interface); ooit had men de command line nodig om JACK te configureren en te controleren. Tegenwoordig bestaat er een GUI onder de naam qjackctl, die het mogelijk maakt JACK gemakkelijker te configureren. Het is de aanbevolen manier om met JACK te werken. ![]() ![]() Ontwerpdoelen![]() JACK is ontworpen met de volgende doelen voor ogen.
PortingJACK is ontworpen om te kunnen werken op een systeem dat voldoet aan de POSIX- en ANSI C-standaarden. Momenteel werkt JACK al op GNU/Linux en Mac OS X. De ontwikkelaars van JACK werken aan een versie voor Microsoft Windows. Informatie over hoe JACK te porten naar een ander platform kan men terugvinden in het Porting JACK-document. LicentiesJACK is vrije software, herdistribueren en/of aanpassen is toegestaan onder de GPL en LGPL zoals gepubliceerd door de Free Software Foundation. De JACK-server is vrijgegeven onder de GPL-licentie, terwijl de JACK-bibliotheek vrijgegeven is onder de LGPL-licentie, wat het mogelijk maakt dat eigendomsgebonden programma's de JACK-services gebruiken. Zie ookExterne links
Bronnen, noten en/of referenties
|
Portal di Ensiklopedia Dunia