terça-feira, 2 de fevereiro de 2010

Sobre o armazenamento digital de músicas - Parte I

A gravação e edição de músicas é um mercado gigantesco. Em muitos estúdios, utiliza-se programas que geram os sons dos instrumentos a partir de um banco de dados. Não precisamos mais de uma banda para gravar um pequeno jingle. Em alguns casos, nem de alguém que cante afinado para cantar numa banda. Um bom exemplo de software que cria músicas é o Reason. Há também como fazer a gravação com a obtenção do som diretamente dos instrumentos. Mas nessa obtenção, realiza-se o processo de digitalização do som. Nesta primeira parte do artigo, que supostamente terá três partes, gostaria de comentar sobre dois parâmetros que influenciam a digitalização de sons: o sample rate e o bit rate.

Uma onda senoidal

Vamos rapidamente relembrar um detalhe sobre ondas senoidais no tempo. Há pelo menos duas definições usuais de frequência. No entanto, o período de uma onda é sempre definido como intervalo de tempo necessário para se completar um ciclo da onda. Se definimos então a onda como


então a medida do período será


Se quisermos utilizar "frequência" como o inverso do período, que pode ser medido visualizando a onda em um plot, então


Então, por sinal senoidal, quer-se dizer na verdade


em que é a frequência que se utiliza nos programas de áudio.

Som digital

Tudo o que o computador armazena em suas memórias é digitalizado (se ainda não for). Por exemplo, o vinil traz em si o formato que a agulha deve fazer para produzir o som desejado. No computador, isso é impossível: é necessário criar uma unidade fundamental para cada ponto da onda sonora. Ou seja, é uma "discretização" da onda sonora captada de fato. Muitos microfones, atualmente, captam já digitalmente a onda.

Vamos supor que é possível captar o estado da onda sonora a cada t intervalos de tempo. Quanto menor este intervalo de tempo, menos buracos entre um ponto e outro em que não captamos nada; portanto, menos sentiremos diferença do som e do resultado da captação. O recíproco deste número, i.e., 1/t fornece um período. Este período é conhecido como sampling rate (pode ser traduzido como "taxa amostral").

Valores padrões são 22050 Hz (usual para estudos sem aplicação de filtros de sinais, valor padrão no Scilab de sampling rate), 44100 Hz e 96000 Hz (ambos usuais em áudio, embora para uso profissional seja necessária a segunda opção).



Além disso, cada amostra tomada necessita de um espaço na memória. Quanto mais espaço utilizarmos para cada amostra, mais definida será nossa onda e maior será o arquivo final. O bit depth descreve o número de bits necessários para cada amostra. É isso que chamamos de "resolver melhor a onda". Existe uma "rule of thumb" para o efeito do aumento de 1 bit no bit depth para o ganho em potência. A regra diz que há um aumento em 6 dB no dynamic range. Para grandes bit depth, essa regra no entanto começa a se quebrar, mas isso começa a fugir um pouco do conteto (entra mais para a eletrônica).

Valores padrões são: para CD, 16 bits; para DVD-áudio, até 24 bits. No scilab, por padrão utiliza-se 16 bits, mas ele também suporta 8-24 bits.

Note que quanto maior o bit depth, mais bem descrita será a música, porque é como se diminuíssemos o menor intervalo de confiança (ou o erro) da amplitude da onda em cada tempo.



Problemas em frequência

Para baixas frequências, há muitos ciclos por segundo. Para um sinal com 50Hz (próximo das frequências mais baixas ouvidas por nós), há 50 ciclos por segundo. Se a digitalização é feita com sample rate de 22050 Hz, então há 441 amostras por ciclo. Para uma frequência qualquer f e digitalização a um sample rate R, então o número de amostras por ciclo é



Isso significa que quanto maior a frequência, menor o número de pontos por ciclo. O que ocorre se a frequência for 20000 Hz?



Que tipo de onda é descrita por um ponto por ciclo?! Se aumentarmos o sample rate para 96000 Hz, então há apenas 4 amostras por ciclo. Isto é, nem assim o sinal fica realmente bem descrito. Como resolve-se esse problema? Não há muito como resolver. Existem técnicas de interpolação que geram pontos extras em pleno vôo, mas uma vez digitalizado o sinal os pontos entre uma amostragem e outra são completamente perdidos.

Continua...

Continua logo mais. Ainda vou falar sobre compressão e sobre alguns CODECS, e tentar explicar a idéia por trás da MP3 e sua qualidade comparado ao WAV. Na próxima parte vou falar um pouco sobre FFT e equalizadores, mostrando alguns MP3 que eu mesmo criei com diferentes sample rates e bit depths. Mas começarei com um assunto que eu adoro: MIDIs. Espero que tenham gostado do texto.

Notas:

Algumas imagens retiradas daqui (só imagens, as encontrei via google).




4 comentários:

Rafael "rafcor" Corradi disse...

Só uma sugestão, você poderia falar dos formatos .ogg e .flac (principalmente esse), são formatos que merecem no mínimo uma menção para os leigos.

Gabriel Martins disse...

Mas 20000 Hz deve ser um som tão agudo que deve ser praticamente impossível discernir o timbre do som não? Aliás imagino que a maioria dos adolescentes e adultos nem devem conseguir captar uma frequência tão alta de som...

Gabriel Martins disse...

Aliás, post mto interessante =P

Thiago S. Mosqueiro disse...

É, Gabriel, a maioria pára no 19000Hz, se não estou enganado. No próximo post você vai ver a diferença que faz mesmo para 15000 Hz. E obrigado pelo elogio.

Rafael, não estava pensando em falar deles não, mas se os próximos dois posts ficarem bons, por que não um quarto? Obrigado pela sugestão.