segunda-feira, 2 de novembro de 2009

Latência MIDI e DAW

(MSG do Ricardo Tolomelli em resposta ao problema e dúvidas sobre latência ao Rodolfo em 18/8/2009)
- O padrão MIDI foi criado no comecinho dos anos 80 (ou fim dos 70, não sei direito) e até hj é basicamente a mesma coisa. Foi criado pra que um instrumento digital pudesse conversar com outro em termos digitais, basicamente notas e controles, e não áudio digital. Por serem só informações BEM pequenas, ele funciona bem, mesmo nos primórdios. Então, esqueça a latência por causa da interface MIDI, ela trabalha com folga larga (MUITO LARGA) nos sistemas de hoje.
- Os software DAW (Digital Audio Workstation), como o Sonar, usam o termo MIDI pra simbolizar as trilhas que não possuem áudio digital, mas sim mensagens MIDI, tipo notas e controles. Estes sofwtares evoluíram do sequencer, que era, exclusivamente, um software MIDI, como num sequencer de um teclado workstation, onde as trilhas só contem informações MIDI e o som era gerado por um hardware separado (ou junto, no casos dos teclados, mas em engines distintos dentro do sistema). Quando os sequencer passaram a gravar trilhas de audio tb, no formato digital (como samplers ou gravadores de rolo, só que no computador), precisou-se fazer a distinção dos tipos de trilha, e convencionou-se que as tipo sequencer seriam chamadas de MIDI e as de audio digital de audio. Isso é parte da culpa por sua confusão de latência achando que estava relacionada à interface MIDI.
- Junto com a evolução dos DAW, surgiu o tratamento do audio digital dentro do próprio software ou através de plug ins, dando origem aos efeitos e também aos famosos softsynths, que são versão software do engine de síntese dos teclados digitais ou workstation. Todos estes plug ins ou soft-synths são geradores ou alteradores de som, e utilizam o processamento da máquina ou das placas de som para rodar, e isso é BEM importante saber. Tudo o que vc roda dentro de uma DAW como plug in, sampler ou sintetizador, ou ainda o próprio mixer (mesa de som) do software, utiliza o processamento da máquina ou da placa de som. Aqui mora a culpa da latência, conforme explico mais abaixo.
- Quando vc grava e roda uma trilha MIDI ela praticamente não consome nenhum processamento da sua placa mãe, menos ainda da sua placa de som, porém, ela, sozinha, não gera som nenhum. Se vc roteia o sinal MIDI da referida trilha para tocar um instrumento externo, tipo um módulo ou um teclado, ligado ao seu micro pela interface MIDI, quem vai produzir o som é o módulo ou teclado, e vc não vai perceber latência nenhuma, a interface MIDI dá conta do recado, como eu disse, com folga. Porém, se vc roteia o sinal da sua track MIDI para um soft-synth, por exemplo, vc passa a usar o seu micro e sua placa de som para gerar o som, e aí começa a sofrer de latência conforme vc vai acumulando funções que estão sendo processadas ao mesmo tempo pelo seu computador e pela sua placa de som, imagine um soft-synth possui um algoritmo para gerar o som, outro algoritmo para manipulá-lo (filtros, envelopes, pitch), aí vc toca um acorde e multiplica por três o que está sendo processado por aquele soft-synth, então vc passa o audio dele por uma central de efeitos com delay e reverb, e estes efeitos também são calculados dinâmicamente sobre o áudio gerado dinamicamente, e por fim tudo passa por uma mesa de som virtual que também consome lá sua parcela de processamento para juntar tudo numa saída só, traduzida pela placa de som no som que vc ouve. Agora imagina 3, 4, 8 trilhas dessas rodando ao mesmo tempo?
- Pra resolver isso, o primeiro passo foi criar drivers (e padrões de drivers) mais eficientes, que conseguem aproveitar mais os recursos de hardware da placa que vc está usando, um dos padrões é o ASIO, e o ASIO4ALL é um driver genérico para prover o padrão ASIO sobre placas de som comumente encontradas em notebooks e PCs. As placas dedicadas todas vem com uma versão otimizada de driver, no padrão ASIO ou outro padrão, que permite que os DAW explorem ao máximo o hardware e com isso diminuindo a latência, que é o tempo que o computador demora para processar todas as informações.
- Mas mesmo com os drivers mais eficientes, ainda há limites que precisam ser observados, e estes são os limites impostos pelo seu PC e pela placa de som que vc usa. Os limites de um sistema (PC + placa) só serão ultrapassados se vc trocar de PC ou de placa. Se vc comprou uma placa um pouco melhor, configurou os drivers corretamente, tentou ajustar um nível de latência que seja aceitável pra vc, mas ainda assim a placa de som não está dando conta de resolver tudo o que vc quer que ela resolva naquele espaço de latência, então vc está trabalhando além do limite do seu sistema. Só há duas coisas a fazer:
1 - Comprar uma placa melhor ainda, uma que comporte um bit rate mais alto (24 nits, por exemplo) e uma taxa de asmostragem mais alta tb (96 khz ou ainda 192 khz) vai te dar mais folga, principalmente se vc estiver trabalhando com audio na casa da qualidade de CD (16 bits a 44.1 khz).
2 - "Congelar" as trilhas que vc não pretende mexer por enquanto - Congelar ou "freeze" um trilha significa renderizar o que é produzido por aquela trilha numa trilha de audio, assim, todo o processamento usado para gerar o som daquela trilha específica (soft-synths, efeitos, mixer, samplers, etc) vira uma trilha de audio que é tocada pelo DAW de forma direta, praticamente não consumindo nenhum processamento. Essa técnica é extramente útil em home studios se vc quer produzir um trabalho profissional com muitas trilhas, porém é inútil se vc está usando o computador como um módulo de som pra tocar ao vivo com um controller MIDI.

E aí, qual o seu caso?
[]'s
Ricardo Tolomelli

Nenhum comentário:

Postar um comentário

Caso não queira deixar seu email, deixe pelo menos um nome pelo qual você possa ser identificado. Comentários totalmente anônimos não serão aceitos.

Observação: somente um membro deste blog pode postar um comentário.