DJ’s não sabem de nada!

Tenho um amigo que se diz DJ só porque tem um amplificador, um pick-up e umas caixas de som boazinhas… e vive de colocar musiquinhas da Xuxa pra criançada se divertir em festinhas de aniversários (as mamães são dessa época – as crianças, é claro, acham uma merda!). Bem… o sujeito faz questão de encher o meu já velho e enrugado saquinho com a ladaínha de que “discos de vinil são melhores que CDs ou esse tal de MP3″… Haja paciência!

Desde o começo dessa briguinha boba, o argumento dos entendidos é sobre a faixa de baixa frequẽncia… é a chamada “loudness wars”. Se vocẽ fizer uma análise espectral de uma música que foi gravada em vinil e a mesma música, num CD, poderá observar uma pequena diferença (se existir alguma!). Especialmente na faixa do infra-som (abaixo dos 20 Hz) – que, aliás, é uma faixa que nós, humanos, não ouvimos de jeito nenhum (mas podemos sentir). Acontece que isso nada tem haver com a maneira como o áudio foi gravado… bem… até tem, o que quero dizer é que não é por causa da “tecnologia digital”…

O que acontece é que, por causa da qualidade superior, os CDs são equalizados de forma diferente do que nas gravações em vinil. Vale aqui explicar o que significa “equalizar”, antes de continuar: A gravação de qualquer mídia (CD o vinil) passa por estágios onde existem perdas no sinal original. Um cantor se esforça para soltar a voz de forma afinada, que é captada por um microfone que, por sua vez, atenua certas frequências e amplifica outras, além de adicionar um pequeno ruído (por ser um transdutor mecânico – transforma a vibração do ar em eletricidade). Do microfone o sinal, já alterado, vai para amplificadores que fazem a mesma coisa: Adicionam ruido, “comem” certas frequẽncias e “melhoram” outras, agora, graças ao seu circuito e à temperatura (os componentes esquentam!)… Dos amplificadores o sinal passa por uma mesa de mixagem… etc… etc… etc… No fim das contas o sinal estará distorcido, em relação ao sinal original. Mas, isso não é o mais importante, porque os técnicos de som compensarão essas perdas e granhos através do processo chamado EQUALIZAÇÂO.

“Equalizar” significa “tornar igual”. Ou seja, aquelas faixas de frequeência que foram perdidas precisam ser amplificadas e as que foram amplificadas precisam ser atenuadas para que o sinal final fique “igual” ao sinal original. Um dos meios de fazer isso é através de um circuito chamado (adivinhem só!): “Equalizador”.

Equalizador Gráfico semi-profissional.
Equalizador Gráfico semi-profissional.

A figura acima mostra um “Equalizador Gráfico” de dois canais (estéreo). Cada potenciômetro amplifica ou atenua uma faixa de frequências. Provavelmente você não conseguirá ler (porque tive que degradar a imagem para caber direito no WordPress), mas a escala horizontal é logarítmica, entre 20 Hz e 20 kHz e cada potenciômetro tem escala, vertical, entre +12 e -12 dB. Valores positivos amplificam a faixa e valores negativos a atenuam. Nos ajustes acima, as frequências inferiores a 60 Hz foram ateunuadas e as na faixa de, digamos, 10 kHz para cima foram amplificadas. Provavelmente para compensar perdas em altas frequẽncias e amplificações do sinal, em baixas.

O equalizador serve para isso! Compensar distorções no sinal, no sentido de tornar a saída IGUAL à forma de onda original!

Tanto do ponto de vista da gravação em estúdio, quando do ponto de vista do ouvinte, o som deve ser equalizado em algum ponto. No caso do ouvinte, deve-se levar em conta não apenas as perdas do sinal causadas pela transformações ocorrida no aparelho de som, mas também em relação ao ambiente onde o som vai ser apreciado… A mesma música pode ser ouvida num headphone, dentro de um carro, em casa, sentado no sofá ou num show ao vivo, em espaços abertos… Cada ambiente desses têm lá suas características de reverberação e interferências. Reverberação é o que ocorre quando uma onda sonora encontra um obstáculo (uma quina da parede, um sofá macio, etc) e, como resultado, deforma algumas frequências da onda original (seja na intensidade ou na “fase”). Interferência é o que acontece quando duas ondas se encontram… Elas podem se anular, atenuar ou amplificar uma à outra… Nesses casos o equalizador também é usado para “equalizar”, sempre no sentido de obter a forma de onda original.

No caso de equalização ambiental o método mais simples é usar um “analizador de espectro de áudio” e alguma fonte de áudio confiável, padronizada. Existem CDs com trilhas contendo frequências e padrões de teste… E também pode-se usar um gerador de “ruido rosa”, que é um método rápido e menos confiável… O “ruído rosa” é um ruido que contém todas as frequências do espectro audível, de maneira aleatória. Usando essas fontes de áudio podemos desenhar um gráfico mostrando quais frequências foram atenuadas e quais foram amplificadas e, “rebater” essas amplitudes no equalizador…

Voltando ao motivo do “loudness wars”: Como a qualidade dos CDs é superior ao do vinil, a industria estipulou padrões de equalização de baixas frequências para gravações em CD que não existiam antes… Fizeram isso por vários motivos: Havia o receio de que, graças a qualidade superior de áudio, sem ruídos e perdas mecânicas, o sinal de baixa frequẽncia poderia causar danos, não apenas ao equipamento eletrônico do usuário, mas danos desastrosos, como “sem querer” obter a frequẽncia de ressonância de certos materiais e causar desabamentos… Hoje, sabemos que isso não é lá muito provável… Suspeito que o motivo principal seja garantir a qualidade de todo o resto do espectro de áudio, melhorando a experiência do ouvinte. Não que sejamos particularmente sensíveis a ruídos de baixa frequência, mas alto-falantes o são, como é o caso dos woofers (aqueles alto-falantes grandões numa caixa de som vintage).

Se você tem ou já teve um daqueles aparelhos de com com caixas de som enormes, e teve a curiosidade de retirar a malha de proteção frontal para ver os alto-falantes, depois de um tempo, deve ter reparado numa película de líquido acumulada na borda desses alto-falantes grandões…. Aquilo ali é água mesmo! O que ocorre é que as bordas desses alto-falantes – que são grandes porque são os responsáveis pelo audio de baixa frequência – vibram menos que o centro. Isso faz com que as bordas vibrem numa frequência próxima da frequẽncia de ressonância das moleculas de água, alterando essas bordas quimicamente, tornando-as mas fracas e, com o tempo, fazendo com que elas rasguem. Os bons woofers têm uma proteçãozinha para evitar isso, mas não os da época em que essas caixas de som gigantes eram comuns. Hoje temos os sub-woofers, responsáveis pelos infra-sons (que, de novo, podemos sentir, mas não ouvir).

Superífie de um disco de vinil, sendo tocado.
Superífie de um disco de vinil, sendo tocado.

Essas restrições de equalização não existiam nas gravações de vinil…

É claro, discos de vinil têm outras desvantagens em relação ao CD: O atrito mecânico é um deles. Graças a isso, você nunca obterá a mesma forma de onda na saída de um alto-falante se tocar o disco duas ou mais vezes… Na figura ao lado você pode observar que a agulha (de quartzo) passa pelo sulco que é bastante irregular. Dá pra imaginar que esse sulco se desgastando toda vez que a agulha passar por ali, não dá?

O vinil funciona assim: O cristal de quartzo é pressionado pelos sulcos que causam uma deformação microscópica no crital, criando uma diferença de potencial (tensão), que será amplificada, de alguma forma, e colocada num ou mais alto-falantes. Na figura ao lado, ao que parece, vemos um daqueles aparelhos de som antigos, monofônicos, já que não temos DUAS agulhas (haveria um rasgo no meio, se fosse o caso!).

Além de não obter a mesma forma de onda toda vez que tocar um disco, pelo desgaste do vinil (e também do cristal de quartzo) devido ao atrito, temos um pequenino aumento de temperatura, que é traduzido em ruído… Além do ruído térmico, temos o ruído do próprio arraste da agulha contra o vinil e, já que o braço de leitura não pode ser rígido, temos também ruído causado por desbalanceamento. Ou seja, uns 20% do áudio de saída é ruído…

Outra desvantagem é relativa aos danos à mídia… Já ouviu um disco arranhado? Pois é…. E olha que eu nem estou falando de tentar ouvir Bolero de Ravel, inteiro, em vinil… que é impossível

Deixemos o meu amigo “DJ” e sua paixão de lado e vamos nos concentrar no que interessa: MPEG-1 Layer III, ou o famigerado MP3.

Num artigo anterior falei que áudio digital normalmente é uma sequência de valores de 16 bits disponibilizados de tal forma que a sequência é enviada para o canal esquerdo e direito, nessa ordem, em intervalos aproximados de 15 μs, entre um par de valores e outro. Ou seja, são 44100 valores colocados na saída a cada segundo. Quando uma quantidade de coisas ocorre em um segundo é costumeiro expressar isso na unidade Hz (Hertz). Assim a frequẽncia de amostragem é de 44.1 kHz. Esse sampling rate continua válido para áudio digital codificado no formato MP3.

Forma de onda decomposta em senoides.
Forma de onda decomposta em senoides.

Acontece que MP3 não armazena os valores das amplitudes das ondas dos canais esquerdo e direito, para cada par de amostra. Ele armazena as variações de um conjunto de frequências do espetro de áudio.

Toda forma de onda pode ser expressa como o somatório de senóides. A figura ao lado mostra uma onda quase quadrada decomposta em diversas senóides com intensidades diferentes. Assim, ao invés de armazenar toda a forma de onda, podemos armazenar apenas as senóides que se sobressaem, quando formam a onda. Isso é feito através de uma manipulação matemática chamada de Transormada de Fourier. É uma “trasformada” porque transforma um conjunto de valores em um domínio (tempo) em outro (frequências).

Na animação ao lado podemos dizer que, para armazenar dois períodos da forma de onda quase quadrada teríamos que armazenar as amplitudes de sabe-se-lá quantas amostras (milhares, talvez). Mas, no domínio da frequẽncia, precisaríamos armazenar, talvez, apenas as 3 primeiras intensidades (ou “quantidades”) de faixas de frequências previamente conhecidas. Isso nos daria uma forma de onda final que se aproxima muito da onda original… Note que milhares de quantidades foram reduzidas apenas a 3. E é assim que o MPEG “comprime” o áudio.

Claro que isso é uma super-simplificação… Os quantizadores (as quantidades que citei acima) não são apenas 3 e eles variam no decorrer do tempo, de acordo com a variação da saída de áudio. Mas, acho que você pegou a idéia… E para aqueles que querem ver algum cálculo, a equação abaixo é usada para obter os quantizadores:

\hat{f}(\xi)=\displaystyle\int_{-\infty}^{+\infty}f(x)e^{-2\pi ix\xi}dx

Do ponto de vista matemárico, ξ é uma frequência em radianos por segundo e x é o tempo em segundos da forma de onda original. A equação pode ser adaptada para frequência em Hz, facilmente e, é claro, os limites inferior e superior da integração não serão infinitos (estarão, provavelmente, na faixa da frequência fundamental desejada ± Δξ, que seria a faixa desejada). Ou seja, para cada faixa de frequências correspondente a um quantizador, podemos escolher um ξ fundamental e obter a “força” do sinal neste ponto. No ato da decodificação tudo o que temos que fazer é inverter a equação:

f(x)=\displaystyle\int_{-\infty}^{+\infty}\hat{f}(\xi)e^{2\pi i\xi x}d\xi

No caso, os limites de integração correspondem às frequências fundamentais atribuídas aos quantizadores… De novo, isso ai é só para dar uma idéia do processo… existem considerações que não falei aqui.

Reparou que, anteriormente, eu disse que precisamos guardar apenas as frequências que “sobressaem”? MP3 é um método que contém perdas no áudio graças a essas transformação e também a outros fatores… Por exemplo: Nossos ouvidos e cérebros estão ajustados para prestar mais atenção nas faixas de frequência perto dos 4 kHz (a frequência da fala e ruídos feitos por outros animais). É uma característica evolutiva. Ao mesmo tempo, frequências altas são ignoradas, bem como frequências muito baixas… E não conseguimos perceber variações rápidas de amplitude (intensidade) sonora, bem como mudanças de amplitude lineares, mas conseguimos perceber bem variações bruscas de frequência. Existem outras características fisiológicas relativas à percepção do som que a turma do MPEG adota no algorítmo de codificação e decodificação de áudio, na hora de selecionar os quantizadores…

Além dos aspectos fisiológicos, temos aspectos psicológicos… certos sons tem a capacidade de nos deixar alegres, tristes, zangados, com medo, etc… Não acredita?! Assista esse vídeo para ver se você sente a mesma emoção que sentiu quando viu o vídeo original, note como a ausência da música de fundo faz toda a diferença! Tudo isso é levado em conta na hora de escolher os quantizadores… quero dizer: Não que o software saiba qual emoção o áudio quer passar, mas certas frequências são inóquas e podem muito bem ser desconsideradas. Assista ao vídeo nesta página para ter uma idéia do que o MP3 deixa de fora (a música do vídeo é, como a página diz, “Tom’s Diner” com Suzanne Vega).

Para garantir precisão nas mudanças de frequência, o MP3 armazena seu conteúdo em pacotes pequenos, chamados de frames. Cada frame é composto de um cabeçalho de 32 bits, contendo informações sobre o bloco de dados que segue esse valor… O bloco de dados pode ter 192 bytes ou 556 bytes de tamanho. Assim, cada frame pode ter de 196 ou 560 bytes de tamanho, que cabe perfeitamente no payload de num pacote TCP ou UDP, por exemplo. O protocolo MPEG é streaming porque cada um desses pacotes é independente e devem ser interpretados sequencialmente. O pacote nº 1 nos dá um pedaço de uma forma de onda, seguido pelo pacote nº 2, etc…

O header (os primeiros 32 bits) de um frame contém a seguinte estrutura:

struct mp3_header {
  unsigned int sync:12;        /* Deve ser 0xfff */
  unsigned int version:1;      /* 1 = MPEG */
  unsigned int layer:2;        /* 01 = Layer III */
  unsigned int error:1;        /* 1 = no error protection. */
  unsigned int bitrate:4;
  unsigned int samplingrate:2; /* 00 = 44100 Hz */
  unsigned int padding:1;
  unsigned int priv:1;
  unsigned int mode:2;         /* 00 = stereo, 01 = joint stereo. */
  unsigned int ex_mode:2;      /* usado pelo joint stereo. */
  unsigned int copywrited:1;
  unsigned int original:1;
  unsigned int emphasis:2;
};

Note os campos bit rate e sampling rate. O primeiro suporta 16 opções possíveis, de 32 kbps até 320 kbps, mas apenas 13 são padronizadas: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 e 320 kbps. Esses bit rates estão disponíveis para sampling rate de 44.1 kHz. É importante não confundir as duas taxas… Bit Rate diz respeito a quantidade de bits que serão transmitidos no stream a cada segundo. Quanto maior o bit rate, maior a quantidade de frames contidas no arquivo MP3 e maior será a quantidade de quantizadores transmitidos, usados para remontar a forma de onda original. O Sampling rate, por sua vez, diz quantas amostras por segundo devem ser enviadas ao conversor digital-analógico, para obtermos a forma de onda no alto-falante…

É por isso que, quando você tem um bit rate baixo, mas um sampling rate ideal (44.1 kHz) o som soa como se tivesse uma qualidade infeior: A forma de onda obtida está longe de ser parecida com a original, porque temos o somatório de menos senóides que a compõe, em cada segundo.

É bom dizer aqui, também, que o bit rate médio de um CD gira em torno de 1.4 Mbps… É só fazer as contas: Se temos 16 bits por amostra e temos duas amostras para cada canal, numa frequência de amostragem de 44100 pares por segundo, temos: 16*2*44100 = 1411200 bits por segundo. Ou seja, 1.4 Mbps… Mas, MP3 não lida com amostras, lembra? Uma taxa de 128 kbps é suficiente para “carregar” quantizadores suficientes para remontar a onda original numa qualidade superior a de um CD, no caso de sons estéreo. Qualquer coisa acima disso te dará um áudio mais fiel ao original, mas a diferença de qualidade não pode ser distinguida por nós…

Como regra geral, costumo usar, em minhas conversões de áudio, o valor padrão de 64 kbps por canal… Isso não te dará um áudio perfeito. Segundo minhas experiências, esse bit rate recorta o áudio em frequências superiores a 17 kHz. Acontece que, quanto mais velho você fica, menor é a capacidade de ouvir frequências altas… Desse jeito, consigo containers de áudio com tamanho pequeno e consigo ouvir muito bem, obrigado… Mas, se você ainda é jovem e adora estourar seus tímpanos, use bit rates maiores: 320 kbps por canal, por exemplo, só recorta frequências superiores a 22.1 kHz, ou seja, ultrasom..

Assim, se tenho um vídeo contendo áudio em 6 canais (Dolby 5.1), uso uma taxa de 384 kbps (64 kbps vezes 6 canais). Infelizmente MP3 não suporta nem mais que dois canais e nem bit rates mais altos que 320 kbps… Para isso existem outros formatos como FLAC (lossless), AAC e AC3 (lossy, mas suportam Dolby e melhor qualidade),

Uma vantagem do MP3 ser um container streaming é que, se você quiser concatenar dois arquivos de áudio em um só, basta fazer:

$ cat audio1.mp3 audio2.mp3 > concatenado.mp3

Claro, isso só pode ser feito se os arquivos audio1.mp3 e audio2.mp3 não contiverem um header ID3.

Opcionalmente, os arquivos MP3 podem ter um header especial de identificação, que possui o nome da trilha, autor e até mesmo uma imagem atachada ao arquivo. Você pode observar os efeitos do ID3 neste grab do nautilus, aqui na minha máquina:

Alguns arquivos MP3 com ID3 contendo figuras.
Alguns arquivos MP3 com ID3 contendo figuras.

Os arquivos MP3 “puros” têm apenas um ícone com duas colcheias… Os arquivos do “Nerdcast” e do “Elo Perdido” (Jurassicast), tem imagens. Se eu clicar com o botão direito e perdir as propriedades dos MP3 do Nerdcast, obterei algumas informações extras… Mas, não terei informações semelhantes do “Bamiga Sector One – Grand Prix Circuit.mp3”, por exemplo.

Vale outra explicação sobre quantizadores aqui: Em vídeo, você pode ter lido em algum lugar que quanto menos, melhor… De fato: No caso de vídeos MPEG, todo quadro é dividido em blocos de 64 cores, ou seja, blocos de 8×8 pixels (e este é o motivo de softwares como o ffmpeg reclamarem se o tamanho do vídeo não for múltiplo de 8!). Cada pixel é uma codificação do somatório da intensidade de três frequência visíveis (Vermelho, verde e azul). Ao invés de codificar todo o bloco, o algorítimo atribui quantizadores para cada bloco, determinando a variação das frequências, de acordo com o quadro anterior. Como temos 64 pixels por bloco, podemos ter de 1 até 64 quantizadores para cada bloco… A quantidade de quantizadores é medida de forma inversamente proporcional a quantidade de pixels. Se tivermos 1 quantizador por pixel, teremos 64 quantizadores por bloco, o que dá uma qualidade excelente, mas uma baixa compresssão… Um valor empírico máximo de quantizadores, para o caso de codificação de vídeo, é de 23 por bloco. Isso nos dá, em teoria, um vídeo com 35% do tamanho que ele teria se armazenássemos os pixels individualmente.

No caso de áudio a coisa é diferente… áudio é uma grandeza típicamnete unidimensional (enquando o vídeo é bidimensional). O que nos força a pensar em quantizadores por n amostras, num intervalo de tempo δt. Isso significa que quanto mais quantizadores, melhor! Mas, não podemos ter tantos quantizadores que não valha a pena usar o envoltório do áudio original, não é?

Minha observação final é quanto ao método de codificação: Não estou bem certo de que transformações de Fourier sejam usadas no algorítmo… De fato, temos outras métodos de obter os quantizadores. A transformada de cossenos discreta é uma delas (DCT). Eu sei que esse método alternativo é usado na codificação de JPEGs e vídeos. Ela é rápida, mas exige que uma matriz seja gravada junto com o vídeo, para ser usada como base para filtragem de frequências… Não é o caso de arquivos MP3. Aparentemente apenas quantizadores são mantidos nos MP3, o que sugere a FFT (Fast Foutier Transform)…

Ahhhh… não tem nenhum código de exemplo aqui, certo? Depois mostro a biblioteca “maluca” (MAD = MPEG Audio Decoder)…

Anúncios

Um comentário sobre “DJ’s não sabem de nada!

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s