JACK est un serveur audio à faible latence, écrit pour tout système d’exploitation raisonnablement conforme à POSIX. Il existe actuellement pour Linux, OS X, Solaris, FreeBSD et Windows. Il peut connecter plusieurs applications client à un appareil audio, et leur permettre de partager l’audio les uns avec les autres. Les clients peuvent s’exécuter sous forme de processus distincts comme les applications normales, ou dans le serveur JACK comme "plugins". JACK a été conçu à partir de zéro pour le travail audio professionnel, et sa conception se concentre sur deux domaines clés: l’exécution synchrone de tous les clients, et le fonctionnement à faible latence. Traditionnellement, il a été difficile, voire impossible, d’écrire des applications audio qui peuvent partager des données les unes avec les autres. En outre, la configuration et la gestion du matériel d’interface audio a souvent été l’un des aspects les plus complexes de l’écriture de logiciels audio. JACK change tout cela en fournissant une API qui fait plusieurs choses: 1. fournit une abstraction de haut niveau pour les programmeurs qui supprime le matériel d’interface audio de l’image et leur permet de se concentrer sur les fonctionnalités de base de leur logiciel. 2. permet aux applications d’envoyer et de recevoir des données audio les unes aux autres ainsi que l’interface audio. Il n’y a aucune différence dans la façon dont une application envoie ou reçoit des données, qu’elles proviennent ou non d’une autre application ou d’une interface audio. Pour les programmeurs ayant l’expérience de plusieurs autres API audio telles que PortAudio, CoreAudio d’Apple, VST de Steinberg et ASIO ainsi que bien d’autres, JACK présente un modèle familier : votre programme fournit une fonction "callback" qui sera exécutée au bon moment. Votre rappel peut envoyer et recevoir des données ainsi que d’autres tâches de traitement de signaux. Vous n’êtes pas responsable de la gestion des interfaces audio ou du threading, et il n’y a pas de négociation "format negotiation": toutes les données audio au sein de JACK sont représentées comme des valeurs de points flottants de 32 bits. Pour ceux qui ont des expériences enracinées dans le monde Unix, JACK présente une API un peu inconnue. La plupart des API Unix sont basées sur le modèle de lecture/écriture engendré par le "everything est un file" abstraction pour qui Unix est à juste titre célèbre. Le problème avec cette conception est qu’il ne tient pas compte de la nature en temps réel des interfaces audio, ou plus précisément, il ne parvient pas à forcer les développeurs d’applications à accorder suffisamment d’attention à cet aspect de leur tâche. En outre, il devient assez difficile de faciliter le routage audio inter-applications lorsque différents programmes ne sont pas tous en cours d’exécution synchrone. L’utilisation de JACK dans votre programme est très simple, et se compose généralement de juste: - appeler jack_client_open() pour se connecter au serveur JACK. - l’enregistrement "ports" pour permettre le déplacé des données vers et depuis votre application. - l’enregistrement d’un rappel "process &back" qui sera appelé au bon moment par le serveur JACK. - dire à JACK que votre application est prête à commencer à traiter les données. Il ya beaucoup plus que vous pouvez faire avec les interfaces jack, mais pour de nombreuses applications, c’est tout ce qui est nécessaire. Le simple_client.c exemple démontre un complet (simple!) Application JACK qui copie simplement le signal arrivant à son port d’entrée à son port de sortie. De même, inprocess.c montre comment écrire un client interne "plugin" qui s’exécute dans le processus du serveur JACK.
historique de la version
- Version 0.109.2 posté sur 2008-01-30
Plusieurs correctifs et mises à jour - Version 0.109.2 posté sur 2008-01-30
Détails du programme
- Catégorie: Audio & Multimédia > Autres
- Éditeur: jackaudio.org/
- Licence: Gratuit
- Prix: N/A
- Version: 1.9.10
- Plate-forme: linux