Desmistificando o JACK – Um guia para iniciantes

JACK é o servidor de áudio padrão para trabalhar com áudio profissional no GNU/Linux. JACK, cujo nome é um acrônimo recursivo para ‘JACK Audio Connection Kit’, é um software muito poderoso. Alguns novos usuários costumam achá-lo confuso no início. Embora suas configurações e funcionalidades sejam extensas, você só precisa conhecer o básico para começar e aproveitar o seu potencial. Ao final deste guia esperamos que você tenha uma compreensão suficiente do JACK e de seu funcionamento, para que possa configurá-lo, esquecê-lo e continuar seu trabalho, utilizando o poder que ele fornece.Logo JACKNeste guia vou me referir a qualquer software que tenha suporte ao JACK como ‘cliente JACK‘.

O que é JACK?

JACK em primeiro lugar é um servidor de som otimizado para as demandas do trabalho de produção de áudio. Existem alguns aspectos principais acerca do que ele faz. Vamos a eles?!

Definições

JACK controla suas configurações de áudio e MIDI. Ele permite que você escolha sua interface de áudio, bem como todas as configurações de áudio importantes, como taxa de amostragem, tamanho do buffer e períodos. Essas configurações serão explicadas com mais detalhes mais adiante.

Performance

O uso do JACK permitirá que você obtenha baixas latências com áudio e MIDI. Isso significa que, se você estiver gravando um instrumento em seu computador, poderá monitorar o áudio de volta pelos alto-falantes ou fones de ouvido, sem nenhum atraso perceptível. Para uma boa visão geral e descrição visual acerca de latência, confira ‘ Latency and Latency-Compensation ‘ do manual do Ardour.

Conexões e Interconectividade

Este é o ponto forte de JACK. Quaisquer entradas e saídas de sua interface de áudio e/ou programas compatíveis com JACK podem ser conectadas da maneira que preferir.

Diagrama de fluxo de sinal de áudio entrando e saindo do seu computador

JACK não lida apenas com conexões entre programas, mas também dentro de programas. Qualquer programa cliente do JACK usa ele para gerenciar suas entradas e saídas. A beleza disso é que essas conexões estão disponíveis para qualquer outro programa – compatível com JACK – se conectar também. Eles não se restringem apenas a serem entradas e saídas ‘internas’.

Captura de tela do Ardor e Qtractor

Tanto o Ardour quanto o Qtractor utilizam o JACK para gerenciar conexões de áudio e MIDI. Tudo isso faz do JACK uma ferramenta muito flexível e permite a você interconectar qualquer número de programas com reconhecimento de JACK e fazê-los trabalhar juntos, o que nos leva ao próximo ponto: sincronização.

Sincronização

JACK pode ser usado para sincronizar vários programas. Isso significa que, se você quiser usar o sequenciador MIDI de um programa e o sequenciador de áudio de outro, poderá mantê-los facilmente sincronizados com o JACK. Ambos os programas iniciarão e pararão ao mesmo tempo. O mover-se ao longo da linha do tempo em um programa será espelhado em qualquer outro programa configurado para sincronizar com o JACK.

Uma analogia

Uma analogia para o JACK seria que ele é semelhante a um estúdio de gravação analógico (de hardware). Em tal situação, você usaria cabos para conectar vários equipamentos de qualquer maneira ou ordem que escolher. Você também pode sincronizar várias peças de hardware usando um timemaster comum. O JACK faz exatamente as mesmas coisas entre o software e o hardware conectado ao seu computador. Ele também pode atuar como timemaster para todos os programas com reconhecimento de JACK para que eles permaneçam em sincronia. Assim que você abrir um programa compatível com JACK, suas entradas/saídas de áudio e MIDI ficarão visíveis para o ele e, por sua vez, para qualquer outro programa compatível com JACK. Você pode então conectar as coisas exatamente como deseja.Imagem de cabos de áudio sendo conectados, com uma analogia de como o JACK funcionaVocê faz conexões entre e dentro de programas usando o JACK exatamente da mesma maneira que faria com um hardware real

Cliente JACK

Antes de continuar, falarei sobre o software compatível com JACK para explicar melhor como o ele funciona. Pessoas vindas do Windows e Mac estarão acostumadas a ter sua DAW gerenciando todas as suas conexões para elas. A ideia de uma DAW usando outro sistema de roteamento pode ser um pouco confusa no início. A maneira de pensar nisso é criando um paralelo. Se você está acostumado com sua DAW gerenciando todas as suas conexões, pense no JACK da mesma forma, exceto que ele abrange todo o sistema operacional. Qualquer software compatível com JACK pode ser conectado a este sistema, semelhante a como uma DAW adicionaria plugins. A diferença é que o JACK permite que você tenha um controle preciso de como rotear qualquer coisa que você conectar a ele. O software compatível com JACK pode ser qualquer coisa, desde DAWS (sequenciadores de áudio e MIDI), plugins autônomos e até mesmo programas de vídeo, Xjadeo, por exemplo.

JACK não precisa ser complicado

Como você pode ver, o JACK é uma ferramenta muito capaz, mas não se deixe intimidar por sua potencial complexidade. Usar o JACK NÃO precisa ser complicado. Só porque é capaz de fluxos de trabalho complexos não significa que também não seja adequado para configurações mais simples. Ele fará o que você deseja e é flexível o suficiente para permitir que você faça mais, se precisar. Você também pode trabalhar alegremente em um programa sem sair do mesmo, e permitir que o JACK gerencie todas as suas conexões.

Gerenciadores do JACK

Agora sabemos o que é o JACK e do que ele é capaz. Como o usamos? A primeira coisa a notar é que o próprio JACK é um programa de linha de comando; no entanto, existem vários gerenciadores gráficos para ele que permitem desbloquear facilmente seu poder. Existem dois tipos principais de gerenciadores JACK, para que você possa escolher o tipo que melhor se adapta a você e ao seu fluxo de trabalho. Eles podem ser classificados como:

  • Gerenciadores de configuração JACK, que permitem iniciar o JACK com configurações específicas
  • Gerenciadores de conexões JACK, que lidam principalmente com conexões

As várias ofertas dos gerenciadores JACK combinam esses dois aspectos em graus variados. Então, por que você escolheria um sobre o outro? Se você está fazendo todo o seu trabalho dentro de uma DAW e não usa programas externos, você pode ficar feliz com um gerenciador de configuração do JACK para iniciar ele com as configurações selecionadas. Nesse caso, você pode fazer todas as conexões de software a partir da DAW de sua escolha, para que não haja tanta necessidade de um gerenciador de conexões externo. Para pessoas com uma configuração de gravação mais modular , incluindo vários processadores de efeitos, programas de gravação e sequenciamento, um gerenciador JACK mais voltado para fazer conexões pode ser mais útil, especialmente porque alguns programas modulares não possuem gerenciadores de conexão. A seguir estão os gerenciadores de JACK mais populares:

Qjackctl

Janela principal do Qjackctl, também com janela de conexão mostrandoQjackctl é um gerenciador de JACK muito poderoso e popular. Ele permite acessar uma grande quantidade de configurações do JACK e inclui um gerenciador de conexões, controles de transporte e até um gerenciador para sessão JACK, que é um programa de gerenciamento de sessões . Ele se apresenta em uma pequena janela, permitindo que você explore apenas as configurações que você precisa acessar. Ele também pode ser minimizado na barra de tarefas para que possa sair do seu caminho depois de configurá-lo e executá-lo.

Cadence

Janela principal de cadência mostrando informações sobre a execução do JACKCadence é uma ferramenta fácil de usar para configurar e iniciar o JACK. Ele vinha como parte da distribuição KXStudio (descontinuada) e inclui pontes JACK, que permitem reproduzir sons normais de desktop (ALSA ou Pulseaudio) através do JACK. Cadence também pode iniciar o JACK no login, incluindo pontes JACK. Se você configurá-lo uma vez, haverá muito pouca manutenção depois disso.

Patchage

Captura de tela do Patchage mostrando várias conexõesPatchage é um gerenciador de conexões visual muito bom para JACK. Dá-lhe uma visão geral de todas as suas conexões. As portas de áudio e MIDI são codificadas por cores para que seja mais fácil identificar seus tipos de conexão. Criar conexões é tão simples quanto clicar e arrastar de uma porta de saída para uma porta de entrada.

Cátia

Imagem de Catia mostrando várias conexõesCatia é outro gerenciador de conexões visuais para JACK. Ele usa uma tela semelhante ao Patchage, mas possui recursos extras, como acesso a configurações de amostra e buffer e controles de transporte JACK. O Cadence também pode ser facilmente acessado a partir do Catia clicando no botão de chave inglesa sob o título de ferramentas.

Entendendo as configurações básicas

Se você estiver familiarizado com a produção de áudio em outras plataformas, talvez já esteja familiarizado com algumas das terminologias usadas em relação às configurações. Se você é um novo usuário, isso pode ser confuso, pois o JACK possui uma vasta gama de configurações. A principal coisa a lembrar aqui é que a maioria dessas configurações não é importante, pelo menos não para começar. Se você não sabe o que são, provavelmente ainda não precisa delas. A seguir está uma explicação dos principais que você precisa se preocupar para começar a trabalhar.

Tamanho do buffer, às vezes chamado de quadros/período

Em poucas palavras – tamanhos de buffer menores produzem menos latência de monitoramento. Detalhes mais aprofundados – Uma configuração mais baixa fará com que o computador funcione mais rápido, o que permitirá menor latência, mas à custa de maior uso da CPU. Configurações mais altas (maiores) são mais estáveis, mas você não obterá baixa latência de monitoramento com elas. Se você deseja obter um monitoramento de baixa latência, uma configuração entre 64 e 256 fornecerá resultados úteis.

Taxa de amostragem (Sample Rate)

Em poucas palavras – taxas de amostragem mais altas resultam em menos latência, para a mesma configuração de buffer. Detalhes mais aprofundados – Essas configurações dependem das configurações ideais para sua interface de áudio e de sua preferência pessoal. Algumas pessoas preferem gravar com taxas de amostragem mais altas, outras ficam satisfeitas com 44100 (44,1 kHz), que é a qualidade do CD. Outra configuração comum é 48000, na qual algumas interfaces funcionam melhor. Quanto mais alto você for com essa configuração, menor será sua latência, mas você pressionará sua CPU com mais força, o que pode resultar em xruns (pops e cliques).

Períodos/buffer

Em poucas palavras – Se você estiver usando um dispositivo USB, poderá obter uma baixa latência mais estável configurando-o com o valor “3”. Caso contrário, use uma configuração de “2”. Se você deseja obter configurações de baixa latência, pode ser um ato de equilíbrio descobrir o que funciona melhor sem sobrecarregar sua CPU. Se você não precisar monitorar o áudio pelo computador com baixa latência, não há necessidade de empurrar o computador mais do que ele precisa. É melhor ficar com uma configuração mais alta e manter a confiabilidade como alta prioridade. Se você tiver a opção de monitoramento de hardware de sua interface, use-o para monitorar suas gravações.

Como configuro o JACK?

Este guia pressupõe que você tenha uma configuração em tempo real configurada corretamente. KXStudio (descontinuado) e AVLinux (N.T: Ubuntu Studio, Xiva Studio, etc) são distribuições Linux que fornecem esse ambiente pronto para uso. Mostrarei como definir as configurações do JACK com o Qjackctl e o Cadence.

Qjackctl

Passo 1 – Clique no botão ConfigurarConfigurando o qjackctl etapa 1

Passo 2 – Certifique-se de que a opção em tempo real esteja habilitadaConfigurando o qjackctl etapa 2

Passo 3 – Selecione seu driver de áudio. ALSA deve ser o padrão. Deixe assim, a menos que você esteja usando um dispositivo firewire, caso em que você selecionaria firewire.  

Passo 4 – Selecione sua interface no menu suspenso da interface

Passo 5 – Escolha as configurações para sua interface.

Passo 6 – Clique em OK para aplicar as configurações

Nota – Não toque no campo de nome. Alguns novos usuários gostam de dar um nome ao servidor JACK, mas isso pode fazer com que o JACK não funcione conforme o esperado. A menos que você saiba o que está fazendo, deixe isso de lado, pois causará mais problemas do que vale a pena.Configurando o qjackctl passo 3 a 6

Passo 7 – Pressione start e o Qjackctl iniciará o JACK com as configurações selecionadasConfigurando o qjackctl etapa 7

Passo 8 – Se você precisar monitorar o JACK, a janela do monitor fornecerá informações úteisConfigurando o qjackctl etapa 8

Cadence

Passo 1 – Clique no botão configurarConfigurando a cadência passo 1

Passo 2 – Certifique-se de que a opção em tempo real esteja habilitadaConfigurando a cadência passo 2

Passo 3 – Verifique se a guia do driver está selecionada

Passo 4 – Selecione seu driver de áudio. Selecione ALSA, a menos que esteja usando um dispositivo firewire, caso em que você selecionaria firewire.

Passo 5 – Selecione sua interface no menu suspenso da interface

Passo 6 – Escolha a configuração para sua interface.

Passo 7 – Clique em OK para aplicar as configuraçõesConfigurando a cadência passo 3 a 7

Passo 8 – Pressione Iniciar e Cadence iniciará o JACK com as configurações selecionadasConfigurando o passo 8 da cadência

Passo 9 – Se você precisar monitorar o JACK, a área de Status do JACK fornecerá informações úteisConfigurando o passo 9 da cadência

E agora?

Depois de configurar essas configurações, você pode usar qualquer programa compatível com JACK e eles serão executados com essas configurações. Alguns programas permitem alterar o tamanho do buffer, para que você possa ajustar a latência do áudio sem precisar reiniciar o JACK. Então, mesmo que JACK seja muito poderoso, você não precisa se intimidar. Na sua forma mais básica, é muito fácil configurar sua interface e começar. Você pode aprender mais sobre o poder do JACK à medida que avança, mas não fique muito atolado quando tudo o que você quer fazer é aprender a usar algum software novo.

Nota – Se você estiver tendo problemas para executar o JACK ou reconhecer sua interface, certifique-se de que sua interface esteja conectada e ligada antes de abrir seu gerenciador de JACK. Se você ainda estiver tendo problemas, tente reiniciar seu sistema enquanto sua interface está conectada.

Sincronização de JACK (JACK Sync)

Outro aspecto do JACK que pode ser útil é a sincronização. Você não apenas pode interconectar programas, mas também garantir que seus transportes sejam executados em sincronia. Darei uma rápida visão geral de como fazer isso por meio de uma demonstração que você pode acompanhar.

Passos:

  • Em primeiro lugar, comece a executar o JACK através do seu gerenciador JACK preferido.
  • Em seguida, iniciaremos os programas que desejamos sincronizar, neste caso Ardour e Hydrogen . Precisamos garantir que a configuração nesses programas esteja correta primeiro.

Preparando para o Ardour:

  • Por padrão, o Ardour é definido como JACK timemaster, que é o que queremos. Essa configuração pode ser encontrada navegando para sessão > propriedades e indo para a guia timecode. Vamos deixar isso ativado por enquanto.
  • Em seguida, clicamos no botão ‘Interno’ na barra de ferramentas do Ardour. Isso mudará para JACK, o que significa que JACK agora seguirá Ardour como mestre do tempo (timemaster).

Botões do mestre do tempo do Ardor

Passos para Hydrogen:

  • Navegue até ferramentas > preferências. Na guia Audio System, certifique-se de que Jack foi escolhido como driver de áudio e reinicie o Hydrogen.
  • Agora você verá dois botões timemaster aparecendo na barra de ferramentas. Certifique-se de que J.trans (transporte Jack) esteja habilitado. Isso significa que seguirá o transporte JACK, que agora está sendo controlado pelo Ardour.

Botões do timemaster de hidrogênio

Agora ambos os programas estarão sincronizados quando você rolar seus transportes. Além disso, como o Ardour é timemaster, você pode alterar o ritmo no Ardour e isso será refletido no Hydrogen ou em qualquer outro programa “escravo” (N.T: essa terminologia racista está paulatinamente sendo abandonada).

Ardor e hidrogênio em sincronia

Hydrogen e Ardour sincronizados juntos. Observe que as leituras de tempo e andamento são sincronizadas

O fato de JACK gerenciar portas de áudio e MIDI, além de permitir a sincronização de qualquer programa que as use, o torna uma ferramenta muito poderosa. Isso permite que configurações muito modulares sejam criadas usando o JACK. Para qualquer pessoa interessada em configurações modulares , eu recomendo que você analise o gerenciamento de sessões , particularmente o Non Session Manager , para explorar as possibilidades de gerenciar configurações modulares com essas ferramentas.

Fazendo conexões

Vamos criar um cenário de gravação para demonstrar como fazer conexões usando o JACK. Aqui está o cenário – Eu estarei usando o Ardour para gravar os seguintes instrumentos –

INSTRUMENTOS E ENTRADAS (Inputs)
Vocais Masculinos Input 1
Vocais femininos Input 2
Violão acústico Input 3
Baixo acústico Input 4
Guitarra solo Rodando através do simulador de amplificadores Guitarix
Percussão Hydrogen sincronizado
Piano MIDI keyboard conectado à entrada MIDI com plug-in de piano virtual na pista

Usarei o gerenciador de conexões embutido no Ardour para fazer essas conexões, mas a lógica é a mesma, independentemente do gerenciador de conexões que você usar – Aqui está a minha janela do mixer configurada no Ardour. Fora de cena eu também tenho Guitarix e Hydrogen iniciados. Observe a linha destacada. Todas as conexões já estão feitas, incluindo conexões com Guitarix e Hydrogen.

Janela do mixer Ardor com botões de entrada destacados

Para fazer essas conexões no Ardour, clique com o botão esquerdo nos botões de entrada mostrados na linha destacada. Isto irá mostrar uma janela a partir da qual você pode selecionar sua entrada. Nesse caso, eu queria rotear a segunda entrada da minha interface de áudio para a segunda faixa (vocais femininos), então seleciono a captura 2 marcando sua caixa. Repito os mesmos passos para cada faixa até ter minhas conexões configuradas como eu as quero.

Caixa de diálogo de conexão Ardor

Algo a notar aqui é que todas essas conexões feitas aparecerão em qualquer outro programa compatível com JACK, por exemplo, se você olhar para a janela de conexões no Guitarix, você também verá as conexões que eu fiz de dentro do Ardour. Isso ocorre porque não são os programas que fazem as conexões. Eles usam o JACK para gerenciar as conexões e dizer o que fazer. Lembre-se, JACK é o seu sistema de roteamento e esses programas estão apenas usando-o.

A seguir está uma visão geral completa de todas as conexões divididas para que sejam fáceis de entender. Esta é uma captura de tela do Patchage. Observe o código de cores, as portas de áudio estão em azul e as portas MIDI estão em vermelho.

Visão geral das conexões de sessão no PatchageClique na imagem para ampliar

Patchage é o melhor para ilustrar algo assim. Todos os gerenciadores de conexões têm seus pontos positivos e negativos. Embora seja muito simples para uma quantidade menor de entradas e saídas, o Patchage pode ficar confuso e difícil de decifrar com grandes quantidades de conexões. O gerenciador de conexões de matriz integrado do Ardour é muito bom para um número muito grande de conexões, pois você pode lidar com elas em guias categorizadas. Isso o torna muito mais organizado.Matriz de conexão de Ardour

Esta é uma sessão básica, mas demonstra como as conexões de áudio e MIDI funcionam no JACK. Ele também incorpora aplicativos JACK externos ao meu DAW, um dos quais está em sincronia com o JACK. Experimente todos os gerenciadores/gerenciadores de conexão JACK e veja o que você acha mais confortável e que melhor se adapta ao seu fluxo de trabalho. Todos eles fazem a mesma coisa, eles apenas fazem de maneiras ligeiramente diferentes. No final, você está usando a mesma lógica para fazer as mesmas conexões.

Resumo

A melhor coisa sobre o JACK é que ele não prende você em um único fluxo de trabalho. Mostrei como sincronizar programas e fazer conexões entre eles, mas se você quiser fazer todo o seu trabalho em uma DAW e nunca mais sair dela, você também pode fazer isso. JACK não faz suposições. Ele deixa todas as opções abertas para você aproveitar a qualquer momento e possibilita vários fluxos de trabalho, monolíticos ou modulares . Se você encontrar as ferramentas de que gosta, o JACK tornará possível qualquer configuração que você tenha em mente.

Escrito por Conor Mc Cormack em 13 de Fevereiro de 2015

Publicado em: https://linuxaudio.github.io/libremusicproduction/html/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack

Traduzido para o português por Cráudio em 2 de Junho de 2022

#21 Você sabia?

Áudio do consumidor – PulseAudioPro Audio – Jack
Reduzir o uso de energia é um requisito de definição, a maioria dos sistemas são alimentados com bateria (Laptops, Celulares).Uso de energia geralmente não é um problema, “a energia sai da tomada”.
Deve suportar latências baixas o suficiente para telefonia e jogos. Também cobre usos de alta latência, como filme e reprodução de música (2s de latência é uma boa escolha).Latências mínimas são um requisito de definição.
O sistema é altamente dinâmico, com aplicações de início/parar, hardware é adicionado e removido a qualquer momento.O sistema é geralmente estático em sua configuração durante a operação.
O usuários geralmente não são proficientes nas tecnologias utilizadas.O usuário é geralmente um profissional e conhece bem a tecnologia de áudio e computadores.
O usuário não é necessariamente o administrador de sua máquina, pode ter acesso limitado.O usuário geralmente administra suas próprias máquinas, tem privilégios de root.
O áudio é apenas um dos muitos usos do sistema, e muitas vezes apenas um trabalho de fundo ou secundário.O áudio é o principal objetivo do sistema.
Hardware tende a ter recursos limitados, ser “ruim” e barato.Hardware é poderoso, caro e de alta qualidade.

Fonte: http://0pointer.de/blog/projects/when-pa-and-when-not.html

#3 Você sabia?

Um servidor de som ficará entre o ALSA e seus aplicativos. Eles serão tradicionalmente PulseAudio (para áudio fácil e automático), JACK (para áudio de baixa latência de nível profissional) ou PipeWire (áudio básico ou profissional; ainda experimental).

Um servidor de som não é necessariamente obrigatório, pois os aplicativos podem enviar som para ALSA diretamente. Alguns farão uso de uma API de servidor de som e exigirão que ela esteja disponível para produzir som. Por exemplo, o Firefox não suporta ALSA diretamente e, em vez disso, usa a API PulseAudio, forçando o uso do PulseAudio (ou uma camada de compatibilidade) junto com ALSA.

O PulseAudio irá, por padrão, assumir o controle de todos os dispositivos ALSA e redirecionar todos os fluxos de áudio para si mesmo. O PipeWire, se configurado para isso, usará um pequeno subconjunto da funcionalidade ALSA central na API do kernel para acessar sua placa de som e lidar com todos os outros recursos por si mesmo (substituindo inteiramente a biblioteca ALSA).

Fonte: https://wiki.debian.org/ALSA

#2 Você sabia?

Além do ALSA, no GNU/Linux encontramos os seguintes servidores de som e APIs:

PulseAudio – Um servidor de som que fica entre o ALSA e os aplicativos do usuário, com o objetivo de fornecer configuração de som automática e fácil. Ele também fornece uma interface de aplicativo mais avançada do que ALSA e pode unir ALSA e JACK. Este é o servidor de som mais comum e geralmente é instalado por padrão.

JACK – Uma API de servidor de som e daemon de servidor de som (“jackd”) voltada para uso profissional. Fornece conexões em tempo real e de baixa latência para áudio, MIDI e entre aplicativos.

PipeWire – Um servidor multimídia moderno que visa eventualmente unificar e substituir o PulseAudio e o JACK. Também é um substituto imediato para alsa-lib (biblioteca do ALSA).

OSS (Legacy) – costumava ser o subsistema de som padrão antes do Linux 2.4

Fonte: https://wiki.debian.org/Sound

Crie um site como este com o WordPress.com
Comece agora