MP3 no Linux: Normalização

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, 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). 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 é 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, é 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. 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

MP3 no Linux: Ripagem

O verbo Ripar é um neologismo derivado do verbo da língua inglesa Rip, que significa, literalmente, dilacerar. No meio da computação, o processo de extração dos dados de um CD ou DVD para um disco rígido é conhecido como ripagem (ripping em inglês). Para realizar o trabalho de ripagem é necessário um software específico, conhecido como ripador (ripper - cabe lembrar que as pessoas que executam esta tarefa também são conhecidas por estes termos). Basicamente, o trabalho de ripar consiste em extrair os dados da mídia e gravá-los no disco, em um formato pré-definido, sendo que o formato MP3 é o preferido para músicas.

Com estes termos em mente, já podemos partir para a próxima etapa do nosso trabalho: encontrar um bom software ripper. Temos alguns bons softwares deste tipo para Linux, mas neste texto serão apresentados apenas duas soluções: uma em modo texto com a dobradinha CDParanoia e LAME e outra em modo gráfico com SoundKonverter.

O modo texto de encarar os desafios

A ripagem em modo texto, apesar de fácil, requer um pouco mais de atenção (como qualquer trabalho a ser feito neste modo). Além disso, a tarefa é dividida em duas "sub-tarefas": primeiro deve-se ripar o CD, gerando os arquivos no formato Wav (CDParanoia) e depois deve-se converter estes arquivos gerados para o formato MP3 (LAME).

Segundo, CDParanoia é um software ripador de CDs de áudio, que manipula diretamente os dados presentes na mídia, sem fazer uso de etapas analógicas. O CDParanoia vem junto com o DVD de instalação do openSUSE. Para instalá-lo, basta mandar o YaST procurar por cdparanoia e instalar o pacote encontrado (em alguns casos pode ser necessário instalar o pacote cdparanoia-32bit). A utilização do CDParanoia não requer muitos conhecimentos por parte do usuário, sendo necessário que o mesmo utilize, basicamente, três comandos.

$ cdparanoia -vsQ


O primeiro comando a saber com relação ao CDParanoia faz uma busca nos drives de CD/DVD presentes no sistema, por mídias de áudio. Assim, para usar este programa, caso esteja usando uma distribuição Linux com detecção automática de mídias como a openSUSE, coloque a mídia no drive e espere alguns segundos até que o sistema a detecte. Caso o sistema não tenha este tipo de detecção, monte a mídia manualmente (veja comando mount). Uma vez que a mídia já seja detectada pelo sistema, o comando acima pode ser usado para listar as faixas presentes na mesma. Apesar de ser um comando aparentemente inútil (já que só lista as faixas da mídia presente no drive), ele pode servir para averiguar se a mídia realmente já foi reconhecida pelo sistema. O cifrão inicial do comando apenas indica que é um prompt de usuário comum. A seguir há a chamada direta ao programa (cdparanoia), sucedida dos parâmetros v (de verbose, ou seja, exibindo várias informações para o usuário), s (de search for drive, ou seja, habilita a procura por um drive de mídia) e Q (de query, ou seja, uma vez encontrado um drive, o programa procura e imprime na tela dados da mídia - caso exista).

$ cdparanoia -B


O comando anterior é simples e direto. É ele que faz a ripagem da mídia, gerando um arquivo no formato Wav para cada faixa encontrada. A lógica de uso é como no anterior: colocar a mídia, esperar pela autodetecção do sistema (ou montá-la manualmente) e executar o comando. O que garante a extração das faixas presentes na mídia é o parâmetro passado (-B). Durante a execução deste comando, será extraída uma faixa por vez e será exibida na tela uma espécie de barra de progresso. Caso seja impresso um '+' nesta barra, significa que houve algum tipo de perda de fluxo ou algum erro de leitura naquele ponto da faixa. Apesar de parecer preocupante é normal que apareçam alguns sinais destes em certas músicas, sem que a perda seja perceptível. Além disso, um smiley indica o andamento da operação atual. Abaixo seguem os possíveis smilies com o seu significado, retirados do próprio manual do CDParanoia:

:-) Operação normal, baixo/sem jitter [8]
:-| Operação normal, jitter considerável
:-/ Ler a tração
:-P Perda não reportada de fluxo em operação atômica de leitura
8-| Encontrando problemas de leitura em algum ponto durante releitura; difícil de corrigir
:-0 Erro de transporte SCSI/ATAPI
:-( Arranhão detectado
;-( Desistiu de tentar corrigir
8-X Leitura abortada devido a erro conhecido e incorrigível
:^D Extração finalizada


Terminada a ripagem, já possuímos os arquivos Wav em disco. É hora de convertê-los para MP3!
O LAME é um codificador (encoder, em inglês) de MP3, sendo o seu nome, a sigla recursiva para LAME Ain't an MP3 Encoder (LAME Não é um Codificador de MP3 - isto se justifica pelo fato de que nas primeiras versões do programa, o mesmo não era um ripador completo). A instalação do LAME é bastante simples no openSUSE. Tendo o repositório Packman cadastrado no YaST, basta procurar e mandar instalar o pacote lame.

$ lame ARQUIVO.wav ARQUIVO.mp3


O comando acima apresenta o modo mais simples de funcionamento do LAME, utilizando as configurações padrões do mesmo para converter o arquivo no formato Wav. No caso, lame é a chamada para o programa; ARQUIVO.wav é o nome do arquivo a ser convertido e ARQUIVO.mp3 é o nome que o arquivo gerado receberá. Como é interessante alterarmos algumas configurações padrões para obtermos músicas melhores ou arquivos menores, torna-se necessário passar algumas opções extras para o programa na forma de parâmetros. Isso é visto na próxima linha de comando.

$ lame -m j -h -b 192 ARQUIVO.wav ARQUIVO.mp3


Uma vez invocado o programa (lame), a opção -m informa que o usuário indicará o modus operandi do LAME (Joint Stereo - j -, no caso). O parâmetro -h usa algumas melhorias na qualidade do arquivo a ser gerado e o parâmetro -b indica ao programa que o usuário irá escolher em seguida o bitrate do arquivo final (192kbps, no caso). A seguir deve ser informado o arquivo no formato Wav a ser convertido, seguido pelo nome do arquivo no formato MP3 a ser gerado. Cabe ressaltar que, no caso do nome do arquivo MP3 a ser gerado ser omitido, a extensão .mp3 será anexada no final do nome do arquivo Wav, gerando um arquivo de nome ARQUIVO.wav.mp3 como saída.

O intuitivo modo gráfico

O SoundKonverter é um front-end para vários conversores de áudio (inclusive para os já citados CDParanoia e LAME) e além de ser capaz de trabalhar com vários formatos de arquivo, o programa é um ripador de CDs de áudio e uma interface para softwares normalizadores de volume, como o MP3Gain, ou seja, três programas em um.

A primeira coisa a se fazer para utilizar o SoundKonverter (SK) é inserir um CD de áudio no drive e esperar que o sistema o detecte ou montá-lo manualmente. Uma vez que o CD tenha sido reconhecido pelo sistema, basta abrir o SK (dependendo da configuração do sistema operacional, uma janela de nova mídia encontrada pode ser aberta, exibindo a opção de se abrir a mídia com o SK, o que agiliza o trabalho) e mandar carregar a mídia inserida no botão do canto inferior da janela, selecionando a opção "Adicionar faixas de CD", de acordo com a figura 01.


Figura 01. O botão destacado de vermelho adiciona faixas de CD ao programa.


Ao clicar no botão supra citado, uma janela se abrirá exibindo informações acerca da mídia incluída. Caso haja conexão com a Internet, o programa utiliza o CDDB para obter mais informações sobre a mídia, sendo capaz de exibir nomes de artistas, título de músicas e do álbum etc. A figura 02 mostra esta janela exibindo informações do CD "As Quatro Estações de Vivaldi"(coleção Millenium). Na parte superior da janela alguns parâmetros gerais podem ser alterados e na parte inferior, parâmetros específicos de músicas podem ser igualmente editados de forma separada. No centro da janela são listadas as músicas encontradas na mídia, bastando que o usuário selecione quais ele deseja extrair para o disco rígido, clicar na seta à esquerda do botão Cancelar, na parte inferior da janela e selecionar a opção "Adicionar faixas selecionadas" (no caso de querer extrair todas as músicas, basta clicar diretamente no botão "Adicionar todas as faixas", sem que haja a necessidade de selecionar quaisquer músicas).


Figura 02. Informações sobre a mídia obtidas com o CDDB.


Depois que as músicas forem adicionadas ao programa, o usuário tem a opção de executar a ripagem ou fazer alguns ajustes finos. A figura 03 mostra alguns itens que podem ser alterados. Para isso deve-se acessar a guia Detalhado e dentro dela, selecionar a opção MP3. Isto fará com que o programa ripe e converta os arquivos das músicas de uma só vez. O próximo item é a taxa de bits que pode ser alterada (sugere se 192kbps).


Figura 03. Etapa final de ripagem/conversão.


Uma vez configuradas estas opções, basta clicar no botão Iniciar, para que a ripagem e a conversão tenham início. O interessante no SK é que ele implementa um sistema de programação concorrente, onde, enquanto um arquivo é ripado, o anterior (já ripado) é convertido, o que diminui o tempo de trabalho. Este comportamento pode ser observado na figura 04.


Figura 04. Concorrência no SoundKonverter.


Ao final da operação, os arquivos estarão presentes no diretório especificado no campo Saída(figura 05).


Figura 05. Todas as músicas disponíveis no formato MP3 ao final da operação.


Como pode ser percebido, o processo de ripagem e compactação de arquivos de música no Linux é bastante simples e pode ser feito no modo gráfico ou no modo texto, o que vai depender apenas da escolha do usuário.

Instalando o driver de video manualmente - NVidia


Existem varias maneiras de se instalar o driver de video, algumas pessoas andam tendo problemas ao instalar o driver de video pelo Yast, ja tive problemas parecidos quando iniciei no mundo Linux.
E então resolvi fazer um mini-tutorial de instalação do driver, já utilizei este metodo nas três verções do OpenSuse (10.1, 10.2 e 10.3), na verção 11 instalei pelo Yast mesmo e não deu problema algum.

Acesse o site da NVidia, procure pelo driver correspondente a arquitetura de seu pc

Depois de fazer o download, guarde este Driver da NVidia, dentro da sua pasta home, simplesmente deixe ele lá, não colocar ele dentro de nenhuma sub-pasta, ok.

Com o driver dentro de sua pasta home, feche todas as janelas de sua area de trabalho (desktop), com o computador ligado sem nenhuma janela no desktop, aperte ao mesmo tempo os botões do seu teclado [Ctrl] [Alt] [F3]
Não se assuste seu desktop ficará escuro, ficara com a aparência do konsole.

Aconselho a imprimir os comandos abaixo para visualização do tutorial, já que voçê entrara em modo de konsole, após apertar as 3 teclas, será mais fácil para acompanhar passo a passo.

Podera acontecer de serem pedidos caso não estejam presentes durante o processo de instalação do drive da NVidia, os pacotes: make, gcc e kernel source, instale-os pelo YaST, coloque o CD/DVD e procure no campo pesquisa: make, gcc e kernel source, assinale-os e os instale, assim evitara possivéis mensagens do drive da NVidia que pedem estes dois para poder dar andamento a instalação.


Aparecerá uma mensagem:

Have a lot of fun...


Ele ira pedir o LOGIN e PASSWORD, digite root e a sua senha de administrador

# root

- digite root, se for digitado su ou sudo não funcionaŕa, ok

# *****

- Aqui voçê coloca sua senha de administrador.

Digite agora:

# init 3

- Aparecerá novamente espaço pedindo para que voçê coloque LOGIN e PASSWORD, repita os dados : root e *****.

Procure agora pela sua pasta home:

# cd /home/seu_nome/


Agora voçê esta dentro de sua pasta home, utilize o comando ls ( para listar o que esta dentro de seu home, é apenas para ter certeza de o driver está la mesmo, pode pular este comando, ok)

# ls


Está vendo o driver da nVidia dentro,
NVIDIA-Linux-x86-1.0-9746-pkg1.run

Digite o comando a seguir

# sh NVIDIA-Linux-x86-1.0-9746-pkg1.run - q


Não esquecer que este e apenas um exemplo com um driver que tem o final 9746-pkg1.run, naturalmente se voçê baixar outro driver mais atual e apenas uma questão de voçê digitar ao nome do driver que vc guardou dentro do home, como falei anteriormente os drives são atualizados constantemente, portando a numeração final sempre muda.

Aparecerão algums perguntas , responda ok ,e prossiga com a reconfiguração se seu kernel.

A reconfiguração do kernel e coisa rápida ,cerca de 30 segundos, após estas telas aparecerá novamente uma linha de comando, digite:

# sax2 -r -m 0=nvidia


( é ZERO não confundir com "o").

10º Digite agora as linhas a seguir, no final aperte [Enter] após digitar cada uma:

# nvidia-xconfig --composite


# nvidia-xconfig --allow-glx-with-composite


# nvidia-xconfig --render-accel


# nvidia-xconfig --add-argb-glx-visuals


# rcxdm restart




Pronto driver instalado corretamente.