WikiDer > JACK Audio-Anschluss-Kit
Klinken-Audio-Anschluss-Kit | ||||
| Entwickler | Linux-Audio-Entwickler | |||
| Letzte Version | JACKE2: 1.9.14 (19. November 2019) | |||
| Wartungsversion | JACK1: 0,125 (14.12.2016) | |||
| Status | Aktiv | |||
| Betriebssystem | Linux, Mac OS X, Fenster und Unix | |||
| Geschrieben in | C und C | |||
| Kategorie | Audio- | |||
| Lizenz | GPL/LGPL | |||
| Versionskontrolle | github.com | |||
| Webseite | (und) Projektseite | |||
| ||||
JACK Audio-Anschluss-Kit oder kurz JACK ist ein Audioserver mit hoher Bandbreite und geringer Latenz, der für POSIXBetriebssysteme wie z Linux, Unix und Mac OS X, aber auch erhältlich für Fenster. JACK kann verschiedene Audioanwendungen mit dem Audiogerät verbinden und auch Audiodaten zwischen den verschiedenen Anwendungen austauschen.
Das Kunden in der Lage sein, als proprietäres Verfahren oder als Plugin im JACK-Server.
Überblick
Im April 2001 haben die Menschen der Linux-Audio-Entwicklernennen die Notwendigkeit eines Systems, das eine Sample-synchronisierte Datenkommunikation mit hoher Bandbreite, niedriger Latenzzeit zwischen verschiedenen unabhängigen Audioanwendungen ermöglicht. Ein solches System musste auch in Systemen mit viel CPU-Last eine robuste Performance liefern.Das Projekt erhielt den Namen LOWA (Linux Audio Applications Glue API). Im Herbst 2001 wurde eine erste Implementierung (eine Ableitung der Quellcode von Eifer) unter dem Namen veröffentlicht JACK, ein Akronym von JACK Audio-Anschluss-Kit. JACK hat die Ziele von LAAGA weitgehend erfüllt, obwohl sich JACK noch in der Entwicklung befindet.
Ursprünglich wurden Audioquelle, Effekte, Sequenzer usw. von Hardware gesteuert, die über ein Kabel miteinander verbunden war. Das Problem stellte damals die Eingabe/Ausgabe dieser Hardware zu und von dem PC-System dar. In den letzten Jahren ging der Trend dahin, diese Hardware als Software auf derselben Maschine zu implementieren. Ein neues Problem trat dann auf: Statt die Hardware miteinander zu verbinden, musste eine eindeutige Möglichkeit geschaffen werden, die unterschiedlichen Softwareanwendungen miteinander kommunizieren zu lassen. JACK ermöglicht es, die verschiedenen Audioanwendungen so miteinander zu verbinden, wie die Hardware miteinander verbunden wurde.
Früher war es sehr schwierig, Audioanwendungen zu schreiben, die ihre Audiodaten miteinander teilen konnten. JACK änderte dies, indem er a . einführte API die hauptsächlich zwei Dinge bewirkt:
- Es bietet Programmierern eine Abstraktionsebene, die die Audioschnittstelle verbirgt, damit sich die Programmierer auf die Kernfunktionalität ihrer Softwareanwendung konzentrieren können.
- Es ermöglicht den Empfang und die Übertragung von Audiodaten durch Anwendungen zu und von anderen Audioanwendungen sowie von der Audioschnittstelle. Dabei spielt es für die Anwendungen keine Rolle, ob die Audiodaten von einer anderen Anwendung oder vom Audiointerface stammen.
JACK hat eine zurückrufenFunktion, die Audiodaten senden und empfangen und andere Audioverarbeitungsaufgaben ausführen kann. Alle Audiodaten in JACK werden als 32-Bit-Gleitkommawerte dargestellt JACK ist darauf ausgelegt, einen Server und mehrere Clients auszuführen, die dann miteinander verbunden sind. JACK kann auch mehrere Server betreiben, aber jeder JACK-Server hat sein eigenes Audio-Setup; die JACK-Server sind nicht miteinander verbunden.
Die Verwendung von JACK mit einer Audioanwendung ist einfach und besteht normalerweise aus den folgenden vier Schritten:
- Rufen Sie die neue Audioanwendung auf, um sich mit dem JACK-Server zu verbinden
- Registrieren Sie Ports, um sicherzustellen, dass die Audiodaten von und zu der Anwendung übertragen werden können
- Rückrufprozess register, das rechtzeitig vom JACK-Server aufgerufen wird
- Sagen Sie JACK, dass die Anwendung bereit ist, Audiodaten zu verarbeiten
JACK kommt nicht mit a GUI (Grafische Benutzeroberfläche); hatte einmal die Befehlszeile erforderlich, um JACK zu konfigurieren und zu überprüfen. Heutzutage gibt es eine GUI namens qjackctl, wodurch JACK einfacher konfiguriert werden kann. Dies ist die empfohlene Methode, um mit JACK zu arbeiten.
Designziele
JACK wurde unter Berücksichtigung der folgenden Ziele entwickelt.
- JACK sollte ein schnelles Streaming von Daten mit geringer Latenz zwischen unabhängigen Anwendungen ermöglichen.
- JACK muss jeden Streaming-Datentyp unterstützen, nicht nur Audio.
- In einem typischen Setup führt JACK einen Server und mehrere Clients aus. Es ist möglich, mehrere Server zu betreiben, aber jeder Server ist ein separates Audio-Setup. Eine Kommunikation zwischen mehreren Servern ist ebenso wie zwischen den Clients nicht möglich.
- Anwendungen, die JACK verwenden, haben jeweils ihre eigene grafische Schnittstelle zu JACK. JACK macht keine Spezifikationen für eine GUI. Infolgedessen sind verschiedene Teile des JACK-Setups über die verschiedenen Anwendungen verstreut.
- JACK bietet vollständige, samplegenaue Synchronisation.
- Daten werden von JACK als 32-Bit-Gleitkommawerte dargestellt presented
- Es werden nur nicht verschachtelte Audiostreams unterstützt.
- Ein JACK-Client kann mehrere Datenströme erzeugen.
- Die JACK-API wird in ANSI-C-Werten angegeben. Es gibt keine Einschränkungen bei der Bereitstellung von Servern und Clients.
- Es sollte möglich sein, bereits laufende Anwendungen mit JACK zu verbinden.
- Es sollte möglich sein, JACK-Clients hinzuzufügen oder zu entfernen, während der Server läuft.
Portierung
JACK wurde für den Betrieb auf einem System entwickelt, das mit POSIX und . kompatibel ist ANSI CStandards. Aktuell arbeitet JACK schon daran GNU/Linux und Mac OS X.JACKs Entwickler arbeiten an einer Version für Microsoft WindowsInformationen zum Portieren von JACK auf eine andere Plattform finden Sie im Dokument Porting JACK.
Lizenzen
Jack ist gratis Software, Weiterverbreitung und/oder Änderung ist unter GPL und LGPL wie herausgegeben von der Free Software Foundation. Der JACK-Server wird unter der GPL-Lizenz veröffentlicht, während die JACK-Bibliothek unter der LGPL-Lizenz veröffentlicht wird, die es proprietären Programmen ermöglicht, die JACK-Dienste zu nutzen.
Siehe auch
Externe Links
- (und) Projektseite
- (und) Qjackctl
- (und) Niederländisches Handbuch Qjackctl