Questões técnicas, antes e agora

A produção musical e a criação de discos é um processo multifacetado onde muitos elementos desempenham um papel. Alguns são artísticos, outros são meramente técnicos.
Como funcionava antes
“Nos velhos tempos” (acento escocês, desta vez), todos os elementos técnicos envolviam várias pessoas que sabiam lidar com máquinas de tape, mesas analógicas, equipamentos externos, linhas e até salas de reverberação reais. A última coisa que alguém queria era ver uma sessão paralisar, com o artista perdendo tempo precioso e inspiração por algum problema técnico.
Como funciona hoje
Tudo isso ainda é válido hoje, embora essas tecnicalidades tenham mudado, para quem faz música com computadores (o Fab me disse que parecem existir muitos deles por aí).
Um dos aspectos mais ignorados e subestimados de uma DAW é sua capacidade de lidar com atrasos internos inerentes ao roteamento e ao processamento. Neste artigo vamos olhar para a forma como o Pro Tools gerencia sua ADC (Compensação Automática de Atraso), mas os conceitos aqui apresentados lhe darão o conjunto de habilidades e o chapéu de detetive necessários para realizar essas verificações e diagnósticos em qualquer DAW.
Tamanho do buffer vs Compensação de latência
O que realmente é o tamanho do buffer
Primeiro, essas duas coisas não são a mesma. Para explicar o tamanho do buffer eu sempre uso o seguinte exemplo:
Cada vez que você aperta “Play” na sua DAW, você está solicitando dados do “cérebro” do seu computador para seus alto-falantes. Pense nisso como uma série de caixas que viajam regularmente do seu computador para os alto-falantes. Essa caixa é o seu buffer.
Quanto menor o tamanho do buffer, menores serão as caixas que o seu computador usará para colocar dados e enviar aos alto-falantes. Em um dado tempo (por exemplo, 1 segundo) o seu computador precisará usar mais caixas, mais energia para enchê-las e empacotá-las com segurança, e então enviá-las aos alto-falantes. Como a caixa é pequena, o tempo necessário para empacotar e enviar a primeira caixa desde o momento em que você aperta “Play” será muito curto, mas o seu computador terá de trabalhar mais (maior uso de CPU) para garantir que todas aquelas caixinhas sejam enviadas. Assim como na vida real, essas caixas não permitem muita coisa dentro, então você precisará de muitas caixas, muito papelão, muita embalagem, muita energia.
Com um tamanho de buffer grande, o computador pega leve: uma caixa grande significa que muitos dados cabem nela, e ela só será fechada e enviada quando estiver cheia. Isso significa que, do momento em que você aperta “Play” até o momento em que a primeira caixa chega aos seus alto-falantes, passará mais tempo. Por outro lado, caixas maiores fazem o computador trabalhar menos em um mesmo intervalo de tempo (por exemplo, 1 segundo).
Como o tamanho do buffer afeta o fluxo de trabalho
Recapitulando:
- Tamanhos de buffer menores: maior responsividade, maior uso de CPU/recursos do sistema
- Tamanhos de buffer maiores: menor responsividade, menor uso de CPU/recursos do sistema
Por isso, geralmente, tamanhos de buffer pequenos são preferidos na gravação (quando se precisa da menor latência entre o que você toca e o que você consegue ouvir de volta da DAW) e tamanhos de buffer maiores são preferidos na mixagem (quando você não precisa mais de resposta com restrições de tempo e prefere usar mais plug-ins aliviando a carga no sistema).
Atraso de processamento interno é outro bicho
Então, como o “atraso de processamento interno” é diferente do “tamanho do buffer”? Enquanto o tamanho do buffer é um parâmetro do sistema como um todo, o atraso de processamento muda dinamicamente com roteamentos, plug-ins e cadeias de processamento. E é aí que as coisas podem sair do controle.
Atraso de processamento e sua compensação
Vamos pegar duas trilhas de áudio: a Trilha A tem um groove de bumbo e caixa, a Trilha B tem um riff de baixo. Suponhamos que as duas trilhas foram gravadas por uma dupla de primeira, bem groovy e funky. Você senta para mixar e decide que a Trilha A precisa de um pouco de EQ, alguma compressão e um toque de reverb. A Trilha B está perfeita como está. Você aperta "Play" para ouvir o resultado, e tudo soa incrível. Parte disso é porque a sua DAW está compensando automaticamente o atraso dos plug-ins. Por que isso acontece?
Bem, basicamente leva mais tempo para a Trilha A chegar ao fim da sua cadeia de sinal: a Trilha B está completamente limpa e segue direto pelo roteamento, mas a Trilha A precisa passar por um EQ, um compressor e um reverb.
Por que existe a ADC
A Compensação Automática de Atraso garante que a Trilha B não chegue sozinha à linha de chegada: em vez disso, ela aguardará pela Trilha A e, uma vez que estejam todas juntas, atravessarão a linha de chegada ao mesmo tempo, preservando assim as relações temporais originais entre as duas.
Se a sua DAW não tivesse "ADC" (Compensação Automática de Atraso), a Trilha A soaria como se tivesse sido gravada mais tarde no tempo. Se a diferença for grande, o baterista soaria completamente errado e fora de tempo em comparação com o baixista e, já que — no nosso exemplo — os dois são uma famosa banda de funk, você seria demitido por esse erro.
Como os problemas de delay aparecem
Agora fica fácil entender o quão importante é a ADC, considerando que você geralmente tem:
- mais de duas trilhas
- mais de três plug-ins no total
- mais roteamento, com auxiliares para bussing e send/returns
e, mais importante: as coisas nem sempre soam completamente erradas. Você pode ter uma pequena defasagem entre seus canais (por exemplo, bumbo e baixo e o resto da bateria? Horror!) que está fazendo você tomar decisões de mix baseadas em um problema técnico, não no conteúdo das suas trilhas. E tudo isso muda com qualquer roteamento ou adição/modificação de plug-in! Novamente: horror.
Por esse motivo, vamos garantir que sabemos diagnosticar se a ADC está funcionando corretamente.
Resolução de problemas e ajustes da ADC
Vamos pegar duas trilhas de áudio idênticas, todas roteadas para o mesmo bus. Elas contêm um trecho de áudio idêntico: uma onda senoidal de 1 kHz a -20dBFS (mas realmente, qualquer coisa serve desde que seja o mesmo trecho de áudio).
Método do Teste de Nulidade
Inverto a fase (=inverter a polaridade) em um canal. Algumas DAWs têm um simples botão "flip phase" na faixa, mas o meu Pro Tools não tem. Então eu coloco dois plug-ins Trim idênticos em ambas as trilhas, bypasso o do primeiro e mantenho o do segundo ativado, para inverter a fase. Assim eu coloco a mesma quantidade de processamento em ambas as trilhas e as mantenho idênticas para todos os fins práticos.
No bus de soma, chamado "MIX", coloco um simples plug-in Phasescope, para ver polaridade, níveis e imagem estéreo.
Quando eu reproduzo a sessão as duas trilhas se cancelam e o resultado é silêncio total (-infinito). Ah, a beleza de trabalhar com uns e zeros no domínio digital.

Diagnóstico de roteamento e atrasos de plug-ins
Agora, eu coloco um plug-in na primeira trilha e o deixo em bypass. Assim estou adicionando a carga do próprio plug-in, mas não estou mudando o som de forma alguma. Esteja ciente de que, em algumas DAWs, bypassar um plug-in também o desaloca do caminho de processamento. No meu Pro Tools, bypass significa que o plug-in ainda "pesa" na CPU, mas não afeta o áudio da trilha em si.
Agora, se a ADC funcionar corretamente, o resultado continuará sendo uma nulidade completa. Isso porque a Trilha B é mais rápida que a Trilha A (nenhum cálculo precisa ser feito para ela), mas será solicitada a esperar a Trilha A ficar pronta e então todas serão reproduzidas juntas.
Se desligarmos a ADC no Pro Tools (Setup menu > Delay Compensation unticked) você verá que o Phasescope agora nos mostra algum sinal residual. Isso significa que as duas trilhas não estão sendo compensadas.
No terceiro exemplo, fazemos a Trilha A passar por uma Aux Track adicional e então a enviamos para o buss MIX, enquanto a Trilha B continua indo diretamente para ele. Se a ADC estiver funcionando corretamente, a compensação ainda acontece e o resultado deve ser uma nulidade completa.

Quando a ADC falha em trilhas monitoradas no input
No quarto exemplo, fazemos a Trilha A passar por uma Audio Track, com o monitoramento de entrada ligado. É aqui que as coisas ficam interessantes. No Pro Tools, apertamos play e o sinal não zera. Isso é um bug? Não.
O Pro Tools tem um recurso chamado "Auto Low Latency" que geralmente fica LIGADO por padrão. A ideia por trás disso é que, se você colocar uma trilha de áudio em modo de monitoramento de entrada e/ou gravação, você provavelmente vai querer gravar algo nela. E se isso acontecer a partir de uma fonte real (por exemplo, seu guitarrista precisa gravar uma overdub), o Pro Tools assume que você vai querer a menor latência possível para garantir que o guitarrista possa ouvir o que está tocando (sim, ela) em tempo com a performance. O "Auto Low Latency" faz com que a regra da Compensação Automática de Atraso seja quebrada para trilhas que estão em modo de monitoramento de entrada e/ou prontas para gravar (o botão verde "I" ou o ponto vermelho ligado).
Na maior parte do tempo, isso é o que você quer (especialmente se a sessão já tiver muitos plug-ins), mas neste caso não queremos. Podemos usar essa técnica para gravar (bounce) uma trilha para outra, e é primordial que a ADC seja mantida para que possamos monitorar corretamente e consolidar o material.

Desabilitando o modo Auto Low Latency
Para consertar isso, vamos até o painel de "delay compensation" na parte inferior daquela faixa de áudio (certifique-se de que você tem "Delay Compensation" ativado em "View > Mix Window", para vê-lo). Os três campos indicam, de cima para baixo:
- o atraso total, em amostras, daquela trilha
- o deslocamento do usuário, em amostras, daquela trilha (se houver)
- a compensação total, em amostras, daquela trilha, necessária para igualar o atraso da trilha mais lenta da sessão
normalmente esses campos são todos verdes, mas no Pro Tools eles podem ficar laranja para destacar a trilha mais lenta da sessão. Se ficarem vermelhos, significa que a trilha não está sendo compensada corretamente. Cada DAW tem um máximo de amostras que pode compensar.
Para desligar o modo "Auto Low Latency" para uma trilha específica, clicamos com o botão direito no terceiro campo (o mais baixo) do Painel de Compensação de Delay, e então clicamos em "Auto Low Latency OFF". O campo de compensação agora ficará azul para lhe indicar que o modo de Baixa Latência está desabilitado para aquela trilha.
Se você reproduzir a sessão agora, vai perceber a nulidade completa. As coisas voltam a funcionar como esperado.
Você pode usar esse diagnóstico em qualquer situação (send/returns também), apenas certificando-se de que o resultado final de duas trilhas idênticas (mas de polaridade oposta) retorne em uma nulidade completa. Isso não é discutível: não é uma escolha artística ou uma forma de trabalhar: as DAWs NÃO devem influenciar o timing do seu material (seja ele pré-gravado ou gerado em tempo real) com base em fatores técnicos ou operacionais.
ADC e instrumentos virtuais
E quanto aos instrumentos virtuais? Como saber com certeza que eles estão todos sendo compensados corretamente? Bem, nós não sabemos. Confiamos nos desenvolvedores do software. Na maior parte das vezes.
Mas há um tipo de instrumento virtual que eu não quero negligenciar: bibliotecas de bateria e plug-ins de substituição de bateria. Se eu estou adicionando um sample de bumbo e caixa a uma trilha de bateria existente, como sei que esses dois samples estão perfeitamente alinhados em fase?

Por que bibliotecas de bateria exigem atenção extra
No último exemplo, temos três trilhas de bateria: Bumbo, Caixa e Overheads e elas soam assim:
Poderia estar melhor. Não estou ouvindo força suficiente no bumbo e na caixa e quero reforçá-los usando samples. Para isso, abrimos um instrumento virtual — no meu caso Slate Digital SSD 4 — mas você pode aplicar esse princípio a qualquer plug-in similar.
Uma vez que selecionei meu bumbo e minha caixa, eu reproduzo a sessão e soa assim. Muito bom, está fazendo o que eu quero.
Fazer bounce dos samples para evitar caos
Para mim, a primeira checagem é feita com os ouvidos. Soa bem, então eu mantenho. Entretanto, sei que a sessão em breve será muito maior do que isso e quero reduzir qualquer possibilidade de algo dar errado. Então, em vez de deixar o instrumento virtual ativo e ter que depender dele, eu decido renderizar as trilhas de samples para áudio. Isso tornará a sessão autocontida e não dependente de uma biblioteca sonora que alguém pode não ter instalada anos depois, ou que seu engenheiro de mixagem pode não possuir... e também vai travar no tempo esses samples e garantir que eles fiquem onde estão.
Dica: retire todos os instrumentos virtuais assim que puder, uma vez que suas sessões de arranjo/escrita estiverem concluídas. Pessoalmente eu não confio tanto assim em MIDI e prefiro consolidar para uma sessão mais enxuta e simplificada antes de ir mixar.
Roteamento adequado para imprimir samples
No mixer do SSD eu roteam as coisas da seguinte forma:
- Bumbo (direct): Stereo Output 2
- Caixa (direct): Stereo Output 3
- Todas as trilhas de ambiência (Overheads/rooms etc.): Stereo Output 4
Então, no Pro Tools, eu crio 3 Audio Tracks estéreo, nomeio-as apropriadamente e defino as entradas para serem as saídas do instrumento virtual SSD, as mesmas que listei acima. Para adicionar um pouco mais de roteamento (e colocar mais coisas à prova), essas 3 trilhas irão para seus próprios buses e então para o buss MIX.
Se eu ligar o Input Monitoring nessas trilhas e apertar play, as coisas soarão estranhas e fora do tempo.
Isso acontece porque esqueci de definir "Auto Low Latency" como OFF, como expliquei antes. Uma vez corrigido isso, tudo soa exatamente como antes do bounce.
Em seguida procedo ao bounce das trilhas e aqui estão elas, gravadas separadamente e prontas para serem adicionadas à sessão de mix. O curioso é que, mesmo com o "Auto Low Latency" LIGADO, o resultado impresso seria compensado corretamente! Porque o Pro Tools usa esse modo de Baixa Latência apenas para o lado do monitoramento, não para a impressão interna (bom trabalho, devs).

Corrigindo samples de bateria desalinhados
Agora vamos aproximar o zoom nas trilhas de bateria. Enquanto o sample de caixa está perfeitamente alinhado e em fase com o original, você pode ver um atraso entre os dois bumbos. Isso não tem nada a ver com a Compensação Automática de Atraso, mas sim com os próprios samples do instrumento virtual. Eles são todos diferentes, têm engines diferentes, samples diferentes e, portanto, resultados diferentes. Por isso uma inspeção final é sempre recomendada.
Que tal selecionarmos a distância entre o início do bumbo real e o do bumbo sampleado, descobrirmos que são 72 samples (o Pro Tools mostra isso no transporte, uma vez que minha grade está definida para "Samples"). Agora podemos inserir "-72" no campo "User Offset" no painel de compensação de delay do bumbo sampleado.
Isso dirá ao Pro Tools para deslocar aquela trilha 72 samples "para antes", alinhando assim o bumbo sampleado com o real. Não significa sempre que soará melhor, apenas digo que vale a pena checar! Neste caso, a versão alinhada soa melhor e faz com que os dois bumbos soem mais como um só. Sutil, mas presente.