Latência - áudio digital no Windows


No NAMM Show de 2000, a Cakewalk convidou representantes da Microsoft e de mais de 30 fabricantes de hardware e software para o primeiro "Windows Professional Audio Roundtable". O objetivo deste debate é trabalhar em conjunto no sentido de se obter soluções que tornem o Windows a plataforma ideal para áudio profissional. Este artigo apresenta os resultados das discussões.


Latência: o que é desejado e o que é possível

O critério mais importante para o desempenho de uma workstation de áudio digital (DAW) é a "latência", isto é, o atraso que existe para que uma alteração no som feita pelo software seja efetivamente ouvida. A latência afeta a resposta global da DAW à ação do usuário, assim como sua aplicabilidade para monitoração em tempo-real do sinal na entrada. A tendência atual de sintetizadores virtuais ("software synthesizers") também destaca a influência da latência na execução ao vivo com instrumentos musicais baseados em software.

Quão baixa deve ser a latência? Um engenheiro de áudio experiente pode ouvir diferenças sutis de sensibilidade na gravação de uma bateria se mover o microfone algumas dezenas de centímetros, uma distância equivalente a um atraso de cerca de 1 milisegundo. Estudos mostram que o ser humano pode perceber diferenças interaurais (estéreo) de cerca de 10 microsegundos (0,01 milisegundos). Assim, quanto menor o atraso, melhor.

Qual o melhor que podemos conseguir? A despeito das divulgações feitas por fabricantes de hardware e software, ninguém ainda mediu cientificamente a latência do áudio numa DAW. Entretanto, sabemos com certeza de que há três grandes limitações para estabelecer um limite mínimo na latência de um aplicativo.


Quando consideramos os efeitos da latência dos conversores e da latência de interrupção, fica claro que o menor valor que poderemos atingir no Windows está em torno de 2 milisegundos. Na realidade, a influência da carga do sistema na latência de interrupção e a ordem de processamento acaba levando a um desempenho inconsistente (que acarreta drop-outs aleatórios), e por isso na prática a latência de áudio será muito maior.

Dessa forma, minimizando a incerteza que surge sob condições pesadas de operação ajuda a reduzir a latência de áudio. Como o Windows NT e o Windows 2000 têm latências de interrupção bem pequenas, essas plataformas seriam as mais adequadas para as aplicações de áudio. Acreditamos que no Windows 2000 se possa obter uma latência inferior a 5 milisegundos, mesmo sob condições pesadas de operação.


Desenvolvimento de Software e Hardware - Observações e Conclusões

Os fabricantes de software enfrentam um desafio desanimador. Os usuários pedem a menor latência possível, mas conseguir isso requer conhecimento de características do sistema operacional que não são documentadas nem mesmo conhecidas. Como foi demonstrado pela tecnologia WavePipe introduzida no Cakewalk Pro Audio 9, é possível obter baixa latência com os drivers comuns, mas isso é ainda muito dependente da qualidade do driver.

Os fabricantes de hardware têm um desafio ainda maior. Na plataforma Windows, há uma variedade de formatos de drivers a se considerar: VxD, NT e WDM. E em cima desses drivers vivem uma diversidade de APIs: MME, DirectX, ASIO e EASI.

Por isso, os fabricantes de hardware precisam desenvolver muita programação para poder suportar tantos modelos de drivers e tantas APIs. E o resultado é o comprometimento geral do desempenho do driver.

Veja as etapas que o fabricante de hardware precisa para planejar qual driver criar:


Observação 1: Muitos drivers

Para que um dispositivo suporte tanto o Windows 98 quanto o Windows NT é necessário desenvolver 2 drivers diferentes de kernel (um driver VxD e um driver SYS ). Acima disso, para suportar MME, ASIO e EASI é necessário desenvolver 3 drivers diferentes no nível de modo usuário.

Para poder suportar todas as plataformas e APIs populares, o fabricante de hardware precisa implementar e testar cinco componentes de driver.


Observação 2: Pouco suporte ao modo kernel

Alguns fabricantes nunca deixam o modo kernel fazer seu processamento. Exemplos claros disso são os sintetizadores virtuais WDM KMixer e DirectMusic. Além disso, os fabricantes de softwares de gravação digital precisam passar mais tarefas de mixagem e DSP para o modo kernel.

As APIs de modo usuário como DirectX, ASIO ou EASI não oferecem o suporte adequado para o processamento em modo kernel.


Observação 3: O termo "driver" é mal compreendido

Voltando às quatro etapas do desenvolvimento do driver, vemos que todos os caminhos levam através do Microsoft DDK, e somente o DDK fornece as ferramentas para interfaceamento do hardware de forma padronizada. A maior parte do interfaceamento do hardware deve ser feita no modo kernel, dentro dos arquivos VxD ou SYS.

O verdadeiro "driver" roda no kernel e está empacotado como um arquivo VxD ou SYS. As tecnologias MME, ASIO e EASI são meramente APIs de modo usuário, e não drivers.


A melhor forma de gerenciar a complexidade do driver e ao mesmo tempo oferecer suporte adequado para futuras tecnologias é desenvolver um único driver de áudio no modo kernel, que é na realidade uma marca do Windows Driver Model (WDM).



Texto original de Ron Kuper (Cakewalk Music)
Tradução: Miguel Ratton

Este artigo foi publicado no music-center.com.br em 2001


Copyright ©1996-2005 Miguel Ratton (www.music-center.com.br)