[Como] pasar de ape+cue a mp3 (o a ogg)

Imagen de santiagojbt
0 puntos

En ocasiones, es habitual encontrarse con CD's de música comprimidos en formato ape, o flac. A veces, también hay un archivo cue que los acompaña, un poco misterioso. ¿Cómo podemos pasar a mp3 (o a ogg)? Pues es un proceso bien sencillo, como podréis observar a continuación.

El formato ape se corresponde con la codificación utilizada por Monkey's Audio. Es como una especie de compresión zip, pero para archivos de audio. Utiliza un algoritmo de compresión sin pérdida, es decir, es posible realizar el proceso inverso, para obtener el archivo original a partir del archivo comprimido. Ésto no sucede así en formatos como el mp3 o el ogg, en los que se acepta perder calidad del archivo original, a cambio de reducir el tamaño de los archivos obtenidos (se eliminan frecuencias que no son perceptibles para el ser humano). Por contraposición con los anteriores, éstos algoritmos se denominan algoritmos de compresión con pérdida.

En ocasiones, sólo tenemos un archivo ape del estilo: CDImage.ape, y un archivo cue de la forma: CDImage.cue. Hay gente que extrae así los CD's de música, comprime todo en una única canción (CDImage.ape). El archivo cue es un archivo de texto (podéis abrirlo con un editor) en el que se marcan los fragmentos de inicio y de fin de cada una de las canciones, así como otra información, como puede ser: el nombre de la canción, el título del disco, etc.

Es interesante mencionar que tanto los archivos flac como ape se pueden reproducir directamente. En el primer caso, sólo tenemos que hacer aptitude install flac, y en el segundo, tenemos que obtener el port de los codecs para GNU/Linux en ésta página (lo encontraréis para el xmms y el bmp).

Aquí sólo nos vamos a centrar en obtener los ficheros MP3s, para poder utilizarlos en nuestro reproductor de música :-) Os he escrito un pequeño script para que quede todo más chulo :-)

#!/bin/bash

LAME_PARS="-h"

echo "Script ape2mp3"
echo
echo

MAC=`which mac`
if [ -z $MAC ]; then
echo "ERROR :-("
echo "Monkey's Audio Codec is not installed."
echo "See http://sourceforge.net/projects/mac-port for more details."
exit -1
fi

for i in $*; do
case $i in
*.[aA][pP][eE])
echo "Processing file $i...";;
*)
echo "Warning: File $i don't have .ape extension. Ommiting..."
continue
esac

FILENAME="$(basename $i)"
FILENAME="${FILENAME%.[aA][pP][eE]}"

$MAC $i $FILENAME.wav -d
lame $LAME_PARS $FILENAME.wav $FILENAME.mp3
rm $FILENAME.wav
if [ -e $FILENAME.cue ]; then
mp3splt -f -c $FILENAME.cue -o @n+-+@t $FILENAME.mp3
rm $FILENAME.mp3
fi
done

Copiadlo en un archivo ape2mp3.sh, dadle permisos de ejecución con chmod +x ape2mp3.sh y ejecutadlo, especificando como argumentos los archivos *.ape correspondientes.

La variable de entorno LAME_PARMS contiene las opciones que se le pasarán al codificador LAME, en principio es -h, que si miráis en la documentación, comprime a 128 kbps a calidad alta.

La primera cosa que hace el script es comprobar si el comando mac está instalado. Si no lo está, se aborta la ejecución del script. Entonces, para cada archivo que hayáis especificado en la línea de comandos, primero se comprueba si tiene extensión .ape, si no, se omite (se salta a la siguiente iteración del bucle con continue). A continuación, cogemos el sufijo del nombre del archivo (es decir, el nombre del archivo, sin la extensión ape). Con el comando mac se pasa a formato wav, y posteriormente, con el lame, se pasa a mp3. En caso de que exista un archivo cue, se llama al comando mp3splt para cortar el mp3 en los trocitos indicados en el archivo cue (ver anterior explicación). La opción -f de mp3splt permite realizar los cortes de forma más precisa, incluyendo mp3 de bitrate variable (aunque se codifica a bitrate constante, dejo el parámetro por si alguien quiere cambiar las opciones del LAME a bitrate variable, ver man lame para conocer todas las codificaciones posibles).

En cada caso, se eliminan los ficheros temporales de forma adecuada.

Instalación de Monkey's Audio

Para los que se hayan perdido: bajad el archivo correspondiente, descomprimirlo, y con un ./configure, make y sudo make install, ya lo tenéis instalado :-)

Se aceptan comentarios,

SANTI

PD: Para codificar a ogg se utilizaría el comando oggenc en lugar de lame.

Imagen de Gabriel_M
+1
0
-1