JACK é um servidor de áudio de baixa latência, escrito para qualquer sistema operacional compatível com POSIX. Atualmente existe para Linux, OS X, Solaris, FreeBSD e Windows. Ele pode conectar vários aplicativos clientes a um dispositivo de áudio e permitir que eles compartilhem áudio uns com os outros. Os clientes podem executar como processos separados, como aplicativos normais, ou dentro do servidor JACK como "plugins". Jack foi projetado do zero para trabalhos profissionais de áudio, e seu design se concentra em duas áreas-chave: execução síncroca de todos os clientes e operação de baixa latência. Tradicionalmente, tem sido difícil, se não impossível, escrever aplicativos de áudio que possam compartilhar dados entre si. Além disso, configurar e gerenciar hardware de interface de áudio tem sido frequentemente um dos aspectos mais complexos de escrever software de áudio. JACK muda tudo isso fornecendo uma API que faz várias coisas: 1. fornece uma abstração de alto nível para programadores que remove o hardware da interface de áudio da imagem e permite que eles se concentrem na funcionalidade principal de seu software. 2. permite que os aplicativos enviem e recebam dados de áudio uns contra os outros, bem como a interface de áudio. Não há diferença em como um aplicativo envia ou recebe dados, independentemente de vir/ir para outro aplicativo ou uma interface de áudio. Para programadores com experiência de várias outras APIs de áudio, como PortAudio, CoreAudio da Apple, VST e ASIO da Steinberg, bem como muitos outros, jack apresenta um modelo familiar: seu programa fornece uma função "callback" que será executada no momento certo. Seu retorno de chamada pode enviar e receber dados, bem como fazer outras tarefas de processamento de sinal. Você não é responsável por gerenciar interfaces de áudio ou threading, e não há negociação "format": todos os dados de áudio dentro do JACK são representados como valores de ponto flutuante de 32 bits. Para aqueles com experiências enraizadas no mundo Unix, jack apresenta uma API um tanto desconhecida. A maioria das APIs do Unix são baseadas no modelo de leitura/gravação gerado pelo "tudo é um arquivo" abstração pela que a Unix é justamente famosa. O problema com este design é que ele não leva em conta a natureza real das interfaces de áudio, ou mais precisamente, ele não força os desenvolvedores de aplicativos a prestar atenção suficiente a este aspecto de sua tarefa. Além disso, torna-se bastante difícil facilitar o roteamento de áudio entre aplicativos quando diferentes programas não estão todos em execução sincronizadamente. Usar o JACK dentro do seu programa é muito simples, e normalmente consiste em apenas: - chamando jack_client_open() para se conectar ao servidor JACK. - registro "ports" para permitir que os dados sejam movidos de e para o seu aplicativo. - registrar um "process callback" que será chamado no momento certo pelo servidor JACK. - dizendo ao JACK que seu aplicativo está pronto para iniciar o processamento de dados. Há muito mais que você pode fazer com as interfaces jack, mas para muitos aplicativos, isso é tudo o que é necessário. O simple_client.c exemplo demonstra um completo (simples!) Aplicativo JACK que apenas copia o sinal que chega à sua porta de entrada para sua porta de saída. Da mesma forma, inprocess.c mostra como escrever um cliente interno "plugin" que é executado dentro do processo de servidor JACK.
história da versão
- Versão 0.109.2 postado em 2008-01-30
Várias correções e atualizações - Versão 0.109.2 postado em 2008-01-30
Detalhes do programa
- Categoria: Áudio & Multimídia > Outros
- Editor: jackaudio.org/
- Licença: Livre
- Preço: N/A
- Versão: 1.9.10
- Plataforma: linux