Normalizar volume de arquivos de áudio no Ubuntu 10.10

Não tenho conseguido tempo para escrever no blog mas hoje deixo o último post de 2011.

Trata-se de um script (shell) para rodar o comando normalize-audio em arquivos de áudio do tipo mp3. Já aviso que fiz correndo (para dar tempo até a ceia de ano novo que tenho que começar a preparar daqui a pouco…rs) então há alguns problemas de lógica. Essas falhas não impedem o correto funcionamento do programa mas você vai perceber que falta um ou outro laço para evitar ter que iniciar o programa novamente.

Apesar disso, atinge o objetivo que é agilizar a ação em muitos arquivos (no meu caso eram quase 3000 arquivos que eu teria que fazer um a um).

Lembrando que Música é o diretório onde estão os meus arquivos, se for necessário, basta alterar antes de executar o script. Veja que ele não faz distinção de usuários, ou seja, você pode rodar em qualquer perfil que vai funcionar do mesmo jeito.

Vamos lá.

Atenção: a responsabilidade por qualquer ação feita em seu sistema é só sua! Na dúvida, não faça nada.

#!/bin/bash
clear
echo “SCRIPT PARA NORMALIZAR VOLUME DE ARQUIVOS DE ÁUDIO!”
cd /home/$USER/Música
if [ -e /home/$USER/Música ]
then
ls -l |less
echo -n “Informe o diretório que quer acessar (digite somente a primeira palavra e clique Enter): ”
read d1
cd $d1*
pwd
echo -n “Lista de diretórios disponíveis.”
ls -l
echo -n “Quer normalizar um arquivo (digite 1), normalizar vários (digite 2) ou acessar um diretório (digite 3)? Código: ”
read d2

if [ $d2 = 1 ]
then
echo -n “Informe nome da faixa que quer normalizar (digite somente a primeira palavra e clique Enter): ”
read d3
normalize-audio $d3*
else
if [ $d2 = 2 ]
then
normalize-audio *.mp3
else
if [ $d2 = 3 ]
then
echo -n “Informe o diretório que quer acessar (digite somente a primeira palavra e clique Enter): ”
read d4
cd $d4*
ls -l
echo -n “Quer normalizar um arquivo (digite 1), normalizar vários (digite 2) ou acessar um diretório (digite 3)? Código: ”
read d5
if [ $d5 = 1 ]
then
echo -n “Informe nome da faixa que quer normalizar (digite somente a primeira palavra e clique Enter): ”
read d3
normalize-audio $d3*
else
if [ $d5 = 2 ]
then
normalize-audio *.mp3
else
if [ $d5 = 3 ]
then
ls -l
echo -n “Informe o diretório que quer acessar (digite somente a primeira palavra e clique Enter): ”
read d4
cd $d4*
ls -l
echo -n “Digite 2 para normalizar todos os mp3 desta pasta: ”
read d6
if [ $d6 == 2 ]
then
normalize-audio *.mp3
fi
fi
fi
fi
fi
fi
fi
fi

Como se pode ver, há uma repetição anormal de procedimentos que poderia ser evitada com utilização de laços (while, por exemplo). Como eu estou sem tempo, ficou desse jeito mesmo. Em 70 minutos consegui normlizar perto de 3000 arquivos com esse script. Sem ele eu demoraria, no mínimo, o dobro do tempo.

Bom, é isso aí.

Para quem ler isso antes da meia-noite, um feliz ano novo. Que 2012 seja muito melhor que 2011.

Long live the loud, we are loud and proud!