martes, 31 de marzo de 2009

HAL y abcde

abcde no es otra cosa que un guión escrito en lengua de HAL para establecer comunicación con los expertos del estilo de los citados el día pasado, sin necesidad de que nosotros mismos tengamos que tratar personalmente con cada uno de ellos.

El uso básico de abcde es tan simple que da casi apuro referirlo:

  • Instalar abcde, que instalará de paso todos los expertos a los va a recurrir y que no estén ya integrados en nuestro sistema:

        aptitude install abcde

  • Introducir el CD de audio en el lector de CDs.

  • Teclear en el terminal simplemente:

        abcde

Por defecto, abcde se ejecutará en modo interactivo. Es decir, nos hará ciertas preguntas sobre el contenido del CD. Veamos cómo funciona sobre un disco del célebre saxofonista Ben Webster.

Tras introducir el CD en el lector de CDs y ejecutar abcde veremos el siguiente mensaje, en el que se muestra información sobre el número de pistas del CD que se grabarán:

Grabbing entire CD - tracks: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18

Inmediatamente después, abcde realiza una búsqueda sobre la base de datos de FreeDB y devuelve la información allí contenida sobre nuestro CD:

Retrieving 1 CDDB match...done.
---- Ben Webster / Jazz & Blues 26 ----
1: Randle's Island
2: Old Folks
3: King's Riff
4: You're my Thrill
5: Jive at Six
6: Tenderly
7: Don't get around much any more
8: Pennies from heaven
9: That's all
10: Cotton tail
11: Danny boy
12: Bouce blues
13: Hoot
14: Pouting
15: The iron Man
16: Honeysuckle rose
17: Blue skies
18: Kat's fur

Tras ello nos pregunta si queremos editar dicha información o nos basta con la que FreeDB proporciona:

Edit selected CDDB data? [y/n] (n):

Como no hace falta editar nada, respondemos "no", esto es, pulsamos 'Enter' o 'n' y seguimos adelante.

abcde nos pregunta a continuación si son varios los artistas (en este caso, intérpretes) de la música grabada:

Is the CD multi-artist? [y/n] (n):

El artista principal es Ben Webster y así lo dejaremos, luego seguimos adelante, pulsando 'Enter' o 'n'.

A partir de este momento comienza el proceso de extracción de las pistas por medio de cdparanoia. Para cada pista extraída abcde nos devuelve un mensaje de este tipo:

Grabbing track 01: Randle's Island...
cdparanoia III release 10.2 (September 11, 2008)

Ripping from sector 0 (track 1 [0:00.00])
to sector 14534 (track 1 [3:13.59])

outputting to /home/luis/abcde.170dd912/track01.wav

(== PROGRESS == [ | 014534 00 ] == :^D * ==)

Done.

Aquí, simplemente, abcde nos notifica la extracción de la primera pista que se guardará temporalmente en disco en formato WAV en el directorio /home/luis/abcde.170dd912. Este directorio se crea bajo nuestro home y será eliminado al terminar el proceso. Para la operación de extracción, abcde recurre a cdparanoia. De hecho, los mensajes relativos a la extracción los produce cdparanoia. Especialmente interesante es el mensaje de progreso. A la derecha de dicho mensaje van apareciendo indicaciones semejantes a los smileys o emoticones que se usan en comunicaciones electrónicas. La lista de los smylies que utiliza cdparanoia y de sus significados se puede consultar en la sección 'Output Smilies' de la página de manual de cdparanoia. Puede ser necesario acudir a ella en el caso infrecuente de que surjan problemas en el proceso.

Simultáneamente y para cada pista, abcde codifica, por defecto en formato OGG vía oggenc, los ficheros WAV extraídos, los etiqueta y los guarda en un directorio con un nombre adecuado, en el caso presente Ben_Webster-Jazz_&_Blues_26. El nombre de los ficheros OGG coincide con el nombre de cada pista en la información obtenida por FreeDB. Por ejemplo, el primer fichero, que corresponde a la primera pista del CD de Ben Webster, quedó guardado con el nombre 01.Randles_Island.ogg.

El mensaje final es el informe que devuelve oggenc sobre el proceso de codificación, encubierto hasta ese momento por los mensajes devueltos por cdparanoia, donde consta la calidad, por defecto 3.00 ---a mayor número, mayor calidad y menor compresión---, del fichero OGG resultante y algunos datos estadísticos sobre el proceso de codificación. A ello se añade la notificación de la operación de etiquetado:

Encoding track 18 of 18: Kat's fur...
Opening with wav module: WAV file reader
Encoding "/home/luis/abcde.170dd912/track18.wav" to
"/home/luis/abcde.170dd912/track18.ogg"
at quality 3,00
[ 99,8%] [ 0m00s remaining] -

Done encoding file "/home/luis/abcde.170dd912/track18.ogg"

File length: 2m 59,0s
Elapsed time: 0m 09,6s
Rate: 18,7143
Average bitrate: 97,3 kb/s

Tagging track 18 of 18: Kat's fur...

La ventaja de una sesión interactiva como la descrita es que podemos intervenir en la edición de las etiquetas del CD y sus pistas. Si queremos lo contrario, es decir, que abcde acepte las respuestas por defecto (los "no" anteriores) y actúe sin nuestra intervención, basta añadir la opción -N:

abcde -N

Si en lugar de un fichero OGG, deseamos un fichero FLAC como resultado del proceso, se utiliza la opción -o:

abcde -o flac

Si queremos grabar sólo algunas pistas y no todas, por ejemplo las tres primeras y la última:

abcde 1-3,18

En general, abcde, como casi toda orden de HAL, permite modificar su comportamiento por defecto o especificar más claramente nuestros intereses del momento a través de una amplia gama de opciones. Cuando estas opciones van a ser siempre las mismas, también permite definir variables de configuración a nivel de todo el sistema o para cada usuario en particular. En el primer caso el valor de las variables afectadas se especifica en el fichero de configuración /etc/abcde.conf; en el segundo, en el fichero de configuración de usuario ~/.abcde.conf. Tanto las opciones de línea de órdenes como las variables de configuración vienen suficientemente explicadas en la página de manual de abcde.

Pongamos, para terminar, un ejemplo de fichero de configuración de usuario (~/.abcde.conf), donde consten unas pocas de esas variables. El lector puede indagar y experimentar por su cuenta con otras.

# El formato de recuperación de la información de FreeDB sera UTF-8
CDDBPROTO=6

# Los números de las pistas serán 01, 02, ..., en lugar de 1, 2, ...
PADTRACKS="y"

# La calidad del fichero ogg resultante será de 4 (ver man oggenc)
OGGENCOPTS="-q 4"

# La compresión del fichero flac será la máxima posible (ver man flac)
FLACOPTS="--best"

# El resultado de la extracción se guardará en mi directorio de musica de CDs
# [Cada usuario debe poner aquí su nombre de usuario después de home]
OUTPUTDIR="/home/luis/musica/CDs/abcde"

# El CD se expulsará automáticamente cuando el proceso termine
EJECTCD="y"

No hay comentarios:

Publicar un comentario