JACK to serwer audio o małym opóźnieniu, napisany dla każdego systemu operacyjnego, który jest racjonalnie zgodny z POSIX. Obecnie istnieje dla Linuksa, OS X, Solarisa, FreeBSD i Windows. Może podłączyć kilka aplikacji klienckich do urządzenia audio i umożliwić im udostępnianie dźwięku ze sobą. Klienci mogą uruchamiać jako oddzielne procesy, takie jak zwykłe aplikacje, lub na serwerze JACK jako "plugins". Jack został zaprojektowany od podstaw do profesjonalnej pracy audio, a jego konstrukcja koncentruje się na dwóch kluczowych obszarach: synchroniczowej realizacji wszystkich klientów i pracy z małym opóźnieniem. Tradycyjnie pisanie aplikacji audio, które mogą udostępniać sobie dane, było trudne, jeśli nie niemożliwe. Ponadto konfigurowanie sprzętu interfejsu audio i zarządzanie nim jest często jednym z najbardziej złożonych aspektów pisania oprogramowania audio. Jack zmienia to wszystko, udostępniając interfejs API, który wykonuje kilka czynności: 1. zapewnia wysoki poziom abstrakcji dla programistów, który usuwa sprzęt interfejsu audio z obrazu i pozwala im skoncentrować się na podstawowej funkcjonalności swojego oprogramowania. 2. umożliwia aplikacjom wysyłanie i odbieranie danych audio do / od siebie, jak również interfejs audio. Nie ma różnicy w sposobie, w jaki aplikacja wysyła lub odbiera dane, niezależnie od tego, czy pochodzi z/przechodzi do innej aplikacji lub interfejsu audio. Dla programistów z doświadczeniem kilku innych interfejsów API audio, takich jak PortAudio, Apple CoreAudio, Steinberg VST i ASIO, a także wiele innych, JACK prezentuje znany model: program zapewnia "callback & funkcja, która zostanie wykonana we właściwym czasie. Wywołanie zwrotne może wysyłać i odbierać dane, a także wykonywać inne zadania przetwarzania sygnału. Nie ponosisz odpowiedzialności za zarządzanie interfejsami audio lub wątkami i nie ma negocjacji "format": wszystkie dane audio w jack są reprezentowane jako 32-bitowe wartości zmiennoprzecinkowe. Dla tych z doświadczeniami zakorzenionymi w świecie Uniksa, JACK prezentuje nieco nieznany interfejs API. Większość interfejsów API Uniksa jest oparta na modelu odczytu/zapisu zrodzonym przez "wszystko jest abstrakcją plików" że Unix jest słusznie znany. Problem z tym projektem polega na tym, że nie bierze pod uwagę w czasie rzeczywistym charakteru interfejsów audio, a dokładniej, nie zmusza twórców aplikacji do zwrócenia wystarczającej uwagi na ten aspekt ich zadania. Ponadto ułatwienie routingu audio między aplikacjami staje się dość trudne, gdy różne programy nie są uruchomione synchronicznie. Korzystanie z jack w programie jest bardzo proste i zazwyczaj składa się tylko z: - wywołanie jack_client_open(), aby połączyć się z serwerem JACK. - rejestrowanie "ports" w celu umożliwienia przenoszenia danych do i z aplikacji. - rejestrowanie wywołania zwrotnego "process, które zostanie wywołane we właściwym czasie przez serwer JACK. - informując JACK, że aplikacja jest gotowa do rozpoczęcia przetwarzania danych. Jest o wiele więcej, co można zrobić z interfejsami JACK, ale dla wielu aplikacji, to wszystko, co jest potrzebne. Przykład simple_client.c pokazuje kompletny (prosty!) Aplikacja JACK, która po prostu kopiuje sygnał docierający do portu wejściowego do portu wyjściowego. Podobnie inprocess.c pokazuje, jak napisać klienta wewnętrznego "plugin" który działa w ramach procesu serwera JACK.
historia wersji
- Wersja 0.109.2 opublikowany na 2008-01-30
Kilka poprawek i aktualizacji - Wersja 0.109.2 opublikowany na 2008-01-30
Szczegóły programu
- Kategorii: Audio & Multimedia > Innych
- Wydawca: jackaudio.org/
- Licencji: Wolna
- Cena: N/A
- Wersja: 1.9.10
- Platformy: linux