JACK è un server audio a bassa latenza, scritto per qualsiasi sistema operativo ragionevolmente compatibile con POSIX. Attualmente esiste per Linux, OS X, Solaris, FreeBSD e Windows. Può collegare diverse applicazioni client a un dispositivo audio e consentire loro di condividere l'audio tra loro. I client possono essere eseguiti come processi separati come le normali applicazioni o all'interno del server JACK come "plugin". JACK è stato progettato da zero per il lavoro audio professionale e il suo design si concentra su due aree chiave: l'esecuzione sincrona di tutti i client e il funzionamento a bassa latenza. Tradizionalmente è stato difficile se non impossibile scrivere applicazioni audio in grado di condividere dati tra loro. Inoltre, la configurazione e la gestione dell'hardware dell'interfaccia audio è stato spesso uno degli aspetti più complessi della scrittura di software audio. JACK cambia tutto questo fornendo un'API che fa diverse cose: 1. fornisce un'astrazione di alto livello per i programmatori che rimuove l'hardware dell'interfaccia audio dall'immagine e consente loro di concentrarsi sulle funzionalità principali del loro software. 2. consente alle applicazioni di inviare e ricevere dati audio l'uno dall'altro e l'interfaccia audio. Non c'è differenza nel modo in cui un'applicazione invia o riceve dati indipendentemente dal fatto che provenga / vada a un'altra applicazione o a un'interfaccia audio. Per i programmatori con esperienza di diverse altre API audio come PortAudio, CoreAudio di Apple, VST e ASIO di Steinberg e molte altre, JACK presenta un modello familiare: il programma fornisce una funzione di "callback" che verrà eseguita al momento giusto. Il callback può inviare e ricevere dati e eseguire altre attività di elaborazione del segnale. Non si è responsabili della gestione delle interfacce audio o del threading e non esiste alcuna negoziazione del formato": tutti i dati audio all'interno di JACK sono rappresentati come valori a virgola mobile a 32 bit. Per coloro che hanno esperienze radicate nel mondo Unix, JACK presenta un'API un po 'sconosciuta. La maggior parte delle API Unix si basa sul modello di lettura/scrittura generato dall"tutto è un file" astrazione per cui Unix è giustamente famosa. Il problema con questo design è che non tiene conto della natura in tempo reale delle interfacce audio o, più precisamente, non riesce a costringere gli sviluppatori di applicazioni a prestare sufficiente attenzione a questo aspetto del loro compito. Inoltre, diventa piuttosto difficile facilitare il routing audio tra applicazioni quando programmi diversi non vengono tutti in esecuzione in modo sincrono. L'utilizzo di JACK all'interno del programma è molto semplice e in genere consiste semplicemente di: - chiamando jack_client_open() per connettersi al server JACK. - registrazione "porte" per consentire lo strasferimento dei dati da e verso l'applicazione. - registrazione di un "callback di processo" che verrà chiamato al momento giusto dal server JACK. - dire a JACK che la tua applicazione è pronta per iniziare a elaborare i dati. C'è molto di più che puoi fare con le interfacce di JACK, ma per molte applicazioni, questo è tutto ciò che serve. L simple_client.c esempio dimostra un completo (semplice!) applicazione JACK che copia semplicemente il segnale che arriva alla sua porta di ingresso sulla sua porta di uscita. Analogamente, inprocess.c mostra come scrivere un client interno "plugin" che viene eseguito all'interno del processo del server JACK.
cronologia delle versioni
- Versione 0.109.2 pubblicato il 2008-01-30
Diverse correzioni e aggiornamenti - Versione 0.109.2 pubblicato il 2008-01-30
Dettagli del programma
- Categoria: Audio & Multimedia > Altro
- Editore: jackaudio.org/
- Licenza: Gratuito
- Prezzo: N/A
- Versione: 1.9.10
- Piattaforma: linux