22 de julho de 2008

MP3 no Linux: Normalização


Esta é a terceira postagem da série MP3 no Linux. Na primeira postagem vimos que os arquivos MP3 possuem tags ID3 e que as mesmas são usadas para exibir informações acerca da música e para organizar os arquivos. Ainda nesta postagem, aprendemos sobre a existência de programas para fazer esta organização, especificamente o EasyTAG. Na segunda postagem foi descrito o modelo de organização usado pelo autor e como fazê-lo utilizando-se o EasyTAG.

O texto presente tratará sobre a normalização do volume dos arquivos MP3 e espera-se que depois de aplicadas as orientações aqui descritas, que o leitor não tenha mais que ficar aumentando ou diminuindo o volume do áudio para ouvir determinada música.

Algumas vezes, ao copiarmos um arquivo MP3 de alguém, ou ao baixarmos da Internet, ocorre das músicas estarem com um volume muito alto ou muito baixo quando comparadas às outras que já possuímos. Desta forma, ao ouvirmos as músicas, temos de ficar aumentando ou diminuindo o volume do áudio e esta é uma tarefa que incomoda bastante, já que a maioria das pessoas ouve várias músicas em sequência.

Com o intuito de resolver este problema, foram criados programas que fazem a normalização das músicas, ou seja, grosseiramente, este é o processo que deixa semelhantes os volumes das músicas (dependendo da configuração, até igual). O programa mais famoso de normalização de músicas é o MP3Gain.

O MP3Gain é um software livre que faz a normalização dos volumes de arquivos MP3. De acordo com [1], este excelente programa está disponível para vários sistemas operacionais e apesar da versão para Linux não possuir um frontend, há notas no fórum do seu site oficial, que um já estaria sendo desenvolvido (na verdade até existe um feito em Java, chamado JavaMP3Gain, mas particularmente não gostei dele). Este software é capaz de realizar o trabalho de forma relativamente fácil, por isso ele será utilizado para o desenvolvimento desta tarefa.

A instalação do MP3Gain no openSUSE 10.3 é bastante simples. Tendo os repositórios mais famosos cadastrados no sistema (não me lembro exatamente em qual o pacote está), basta digitar mp3gain no campo de procura do YaST e mandar instalar o pacote mp3gain.

Como mencionado, o MP3Gain ainda não possui um bom frontend para o Linux, por isso o mesmo só pode ser utilizado em modo texto. Àqueles que tremem ao ouvir estas duas palavras, calma! A utilização do programa é bastante fácil e requer apenas um pouco mais de atenção. Antes de começar a descrever os principais parâmetros que podem ser passados ao programa [2], é necessário explicar sobre as duas formas de normalização utilizadas e alguns detalhes sobre o mesmo.

Um pouco de Teoria...
A primeira forma de normalização suportada pelo MP3Gain é chamada de Ganho Rádio (Radio Gain em inglês). Quando se aplica este ganho aos arquivos, os mesmos ficam com o mesmo volume, ou seja, se você mandar aplicar o Ganho Rádio num conjunto de músicas, todas receberão o valor especificado, ficando todas com o mesmo volume. Esta forma é interessante para coleções de músicas compostas por vários artistas/álbuns.

A segunda forma é o Ganho Álbum (Album Gain em inglês). Nesta forma, os volumes são ajustados no volume médio das músicas de um álbum. Alguém já deve ter percebido que nem todas as músicas de um álbum possuem o mesmo volume: músicas rápidas tendem a ser ligeiramente mais altas, enquanto músicas lentas tendem a ser ligeiramente mais baixas. Quando se aplica o Ganho Álbum num conjunto de músicas assim, ele mantém a proporção previamente definida, mantendo o padrão do conjunto de músicas. Este deve ser o tipo de ganho a ser usado em músicas que compõem um álbum (como a organização proposta na segunda postagem da série baseia-se em álbuns, este é o tipo de ganho a ser usado em cerca de 98% dos casos).

A medida usada para mensurar a intensidade sonora é o decibel (db). Assim sendo, todos os valores que são passados para ajuste de áudio no MP3Gain são expressos em decibels, ou seja, ao se aplicar um ganho de -3 a uma música, estaremos subtraindo 3 decibels do seu volume. O programa fixa como volume padrão para as músicas 89 decibels, pois, segundo o autor do programa, esta seria a intensidade do áudio alta o bastante para não acarretar perda de qualidade e baixa o suficiente para não acarretar clipping.

À prática!
Com estes termos em mente, já temos o básico para começar a utilizar o programa. Abaixo serão apresentados alguns exemplos práticos de utilização do mesmo, bem como explicações e comentários sobre cada um. Estes exemplos foram retirados de [3]. Para aqueles que estão começando ou que ainda não estão seguros quanto ao funcionamento do programa, fica a sugestão de fazer backup dos arquivos a serem alterados (apesar de algumas alterações serem reversíveis – se foi aplicado um ganho de 2db a um arquivo, basta aplicar outro ganho de -2db para reverter - outras não são, ou pode ser mais fácil restaurar o arquivo original do que tentar restaurá-lo).

$ mp3gain -a -k *mp3

O exemplo acima é uma das mais simples e úteis aplicações do programa. Ele altera o volume de todos os arquivos do diretório atual cujo nome termina em mp3 para o volume padrão (89db), utilizando o ganho álbum e com a proteção anti clipping ativada.

O primeiro caractere ($) simplesmente indica que ali se inicia a linha de comando de um usuário comum do sistema. Em seguida temos a chamada para o programa (mp3gain). Como primeiro parâmetro, temos a indicação de que deve ser aplicado o Ganho Álbum (-a) e a intensidade do áudio deve ser a padrão (89db). O segundo parâmetro (-k) indica que o volume deve ser reduzido até o ponto de não haver mais clipping (se estiver ocorrendo). Por fim, indica(m)-se o(s) arquivo(s)-alvo, no caso, todos que terminam com mp3 (*mp3 – não é necessário o ponto antes da extensão, mas pode-se colocá-lo se quiser – e.g., *.mp3). Como neste último parâmetro não foi definido o caminho de qualquer diretório, toma-se como base, o diretório atual.

$ mp3gain -r -k *mp3

O segundo exemplo é muito parecido com o primeiro, tanto em termos de sintaxe, quanto em importância. A única alteração é a troca do parâmetro -a pelo -r. Da mesma forma que o -a define que deverá ser utilizado o Ganho Álbum, o -r define a utilização do Ganho Rádio. Assim, o comando faz quase a mesma coisa que o seu antecessor, exceto pelo fato de que em vez de ajustar as médias dos volumes das músicas para o volume padrão, faz com que todas possuam o volume padrão.

$ find ~/Multimedia/Music/ -name *mp3 -type f -exec mp3gain -a -k {} \;

Os dois primeiros comandos são excelentes para serem aplicados em vários arquivos dentro de um único diretório. Entretanto, imagine que você já tenha lido e aplicado os conhecimentos da postagem sobre organização dos arquivos MP3 no seu computador e que cada música já esteja dentro do diretório correspondente ao seu álbum. Você teria de navegar entre cada diretório e executar o comando necessário para normalização das músicas para aquele diretório. Este comando ajuda muito neste sentido. Com ele consegue-se aplicar um determinado tipo de ganho para todos os arquivos presentes em subdiretórios de um diretório inicial.

find é o comando no Linux que faz a busca por arquivos. Logo em seguida informa-se o ponto de origem da busca (no caso, o caminho informado é~/Multimedia/Music/, que é o diretório de armazenagem de músicas do autor). Os dois próximos parâmetros indicam, respectivamente, que os arquivos deverão obedecer a um determinado padrão (-name) e qual é o padrão (*mp3: tudo que termina com mp3 – lembre-se que no Linux mp3 é diferente de MP3!). Na sequência, os dois próximos parâmetros garantem que somente arquivos serão processados, ou seja, caso haja um diretório chamado musicas-mp3 (que obedece o padrão *mp3), o mesmo não será processado. -type indica que um tipo será definido e o f indica que somente o tipo arquivo (File em inglês) deverá ser processado. A seguir indicamos que, para cada item que obedecer o conjunto anterior de regras (estar dentro de ~/Multimedia/Music, terminar com mp3 e ser um arquivo), será executado o comando seguinte. Este comando pode ser qualquer um, mas como queremos normalizar os volumes dos arquivos, podemos usar, por exemplo, o primeiro ou o segundo comando aqui apresentados (mp3gain -a -k no caso). Para finalizar o comando -exec é necessário inserir os caracteres {} \;.

Este é um excelente comando a ser usado por usuários que já possuem uma coleção organizada e não querem perder tempo entrando em cada diretório para normalizar o volume de álbum por álbum manualmente.

Outras duas opções interessantes para o MP3Gain são o -c e o -p. O -c é o contrário do -k: ignora aviso por clippings nas músicas. O -p mantém a data e hora de alteração do arquivo intactas (quando se faz a normalização de um arquivo, estes registros são preenchidos com a data e a hora atuais do computador onde foi realizada a ação). O -u é outra boa opção: caso você não fique satisfeito com o resultado de uma operação com o programa, o uso deste parâmetro a desfaz (ainda assim é recomendado que se tenha backup de tudo). Exemplos:

$ mp3gain -a -c *mp3
$ mp3gain -a -k -p *mp3
$ mp3gain -u Musica.mp3

Todos os exemplos de normalização apresentados utilizam o volume padrão do MP3Gain: 89db. Contudo, alguém pode querer aumentar ou diminuir o volume de uma música manualmente. Para isso existe o parâmetro -d:

$ mp3gain -r -d 1.5 Musica.mp3

No exemplo anterior, a opção -r define o volume do arquivo Musica.mp3 em 89db e a opção -d adiciona 1.5db ao mesmo arquivo, ficando este, portanto, com 90.5db. O parâmetro -d aceita números de ponto flutuante, por isso é necessário ressaltar que, caso sejam usadas casas decimais, as mesmas devem ser separadas por ponto como no exemplo e não por vírgula, como se faz normalmente no Brasil. Além disso, pode-se diminuir o volume de uma música simplesmente aplicando-se um ganho negativo à mesma:

$ mp3gain -a -d -2.0 Musica.mp3

Bom, basicamente é isso. O processo de normalização de músicas torna-se bastante simples com a compreensão dos termos que envolvem a tarefa e com um pouco de atenção. Com estes conhecimentos em mente já podemos normalizar os volumes das nossas coleções de músicas de forma bem fácil. Para quem ainda tiver dúvidas quanto à utilização do MP3Gain, pode dar uma lida na ajuda do programa, que pode ser obtida através do uso da opção -h:

$ mp3gain -h

Na próxima postagem da série veremos como gravar um CD de MP3 como um CD de áudio normal (conversão de MP3 para WAV) e poderemos ouvir as nossas músicas em qualquer CD player!


[1] http://en.wikipedia.org/wiki/MP3Gain
[2] Um parâmetro é uma opção que você passa para o programa no momento em que o mesmo é executado. Normalmente um parâmetro é acompanhado de um valor (e.g., ao se chamar um programa de música no modo texto, o mesmo poderia requerir o parâmetro -m para indicar que ele deve executar um arquivo de áudio e logo em seguida, como valor para o parâmetro anterior, o nome do arquivo a ser executado: programa -m musica.mp3).
[3] http://www.linux.com/articles/59957

Série Completa
  • Tags – O que são e como podem ajudar a organizar seus arquivos MP3.
  • Organização – Como organizar sua coleção de arquivos de músicas.
  • Conversão de MP3 para Wav – Técnicas para este tipo de conversão.
  • Ripagem – Converta CDs em arquivos MP3.

Um comentário: