Jack Audio Connection Kit 1.9.10
Poderá descarregar em 5 segundos.
Sobre Jack Audio Connection Kit
JACK é um servidor de áudio de baixa latência, escrito para qualquer sistema operativo que seja razoavelmente compatível com POSIX. Atualmente existe para Linux, OS X, Solaris, FreeBSD e Windows. Pode ligar várias aplicações do cliente a um dispositivo de áudio e permitir-lhes partilhar áudio entre si. Os clientes podem executar como processos separados como aplicações normais, ou dentro do servidor JACK como "plugins". A JACK foi projetada do zero para o trabalho áudio profissional, e o seu design centra-se em duas áreas fundamentais: execução sincronizada de todos os clientes, e baixa operação de latência. Tradicionalmente tem sido difícil, se não impossível, escrever aplicações de áudio que podem partilhar dados entre si. Além disso, configurar e gerir hardware de interface de áudio tem sido muitas vezes um dos aspetos mais complexos da escrita de software de áudio. JACK altera tudo isto fornecendo uma API que faz várias coisas: 1. fornece uma abstração de alto nível para programadores que removem o hardware de interface de áudio da imagem e lhes permite concentrar-se na funcionalidade principal do seu software. 2. permite que as aplicações enviem e recebam dados áudio de/para o outro, bem como da interface áudio. Não há diferença na forma como uma aplicação envia ou recebe dados, independentemente de ser proveniente/vai para outra aplicação ou interface de áudio. Para programadores com experiência de várias outras APIs áudio, como PortAudio, CoreAudio da Apple, VST de Steinberg e ASIO, bem como muitos outros, JACK apresenta um modelo familiar: o seu programa fornece uma função "callback" que será executada no momento certo. A sua chamada pode enviar e receber dados, bem como fazer outras tarefas de processamento de sinal. Não é responsável pela gestão de interfaces de áudio ou de threading, e não existe negociação "formato": todos os dados áudio dentro do JACK são representados como valores de ponto flutuante de 32 bits. Para aqueles com experiências enraizadas no mundo Unix, o JACK apresenta uma API algo desconhecida. A maioria das APIs Unix são baseadas no modelo de leitura/escrita gerado pelo "tudo é um file" abstração pela qual a Unix é justamente famosa. O problema com este design é que não tem em conta a natureza em tempo real das interfaces de áudio, ou, mais precisamente, não obriga os desenvolvedores de aplicações a prestar em atenção suficiente a este aspeto da sua tarefa. Além disso, torna-se bastante difícil facilitar o encaminhamento de áudio inter-aplicações quando diferentes programas não estão todos a funcionar de forma sincronizada. Usar JACK dentro do seu programa é muito simples, e normalmente consiste em apenas: - chamar jack_client_open para ligar ao servidor JACK. - registo "ports" para permitir a transferência de dados de e para a sua aplicação. - registar um "process callback" que será chamado na hora certa pelo servidor JACK. - dizer ao JACK que a sua aplicação está pronta para começar a processar dados. Há muito mais que pode fazer com as interfaces do JACK, mas para muitas aplicações, isto é tudo o que é necessário. O exemplo simple_client.c demonstra um completo (simples!) Aplicação JACK que apenas copia o sinal que chega à sua porta de entrada para a sua porta de saída. Da mesma forma, o processo .c mostra como escrever um cliente interno "plugin" que funciona dentro do processo do servidor JACK.