jueves, 2 de abril de 2009

HAL y crip (II)

Después de la información sobre el proceso de instalación, el README de crip nos proporciona unas muy breves instrucciones de uso que se completan con un tutorial en la Web al que se remite. No dice nada de las opciones en la línea de órdenes ni de las variables del fichero de configuración.

Las opciones de la orden crip se obtienen, a falta de una página de manual, que sí incluye Debian, ejecutando:

crip --help

lo que da la siguiente lista:

Options:
-h, --help Print this help then exit
-i, --info Print crip variable information then exit
-v, --version Print version of crip then exit
-e codec Encode to vorbis or flac (default = vorbis)
-s media Specify the source media (default = CD)
-g genre Specify the music genre (default = classical)
-q [on/off] Classical-style questioning (default = off)
-m [on/off] Map European to American-only chars (default = off)
-t [on/off] Trim leading/trailing silence (default = off)
-n [on/off] Normalize the audio (default = off)
-V volthresh Volume threshold for normalizing (default = 1.078)
(only used when normalizing is enabled)
-r [on/off] Remove files after encoding (default = on)
-E editor Editor to use (default = vim)
-u [on/off/both] Use editor to name the files (default = on)
(as opposed to the command-line)
-o " flags" Flags to pass to oggenc (default = '-q 5')
-f " flags" Flags to pass to flac (default = '--best --replay-gain')
-c " flags" Flags to pass to cdparanoia (default = '-v -z')
-d device CDrom device to read from (default = /dev/cdrom)
-w [on/off] Skip the ripping (makes empty .wav files) (default = off)
(useful if you already have the .wav files to encode)
-p [on/off] Prompt to continue after ripping (default = off)
(useful pause to edit .wav files before encoding)
-x [on/off] Eject CD when done ripping (default = off)
-P proxyserver Pass an http proxy to CDDB_get if necessary

Las más interesantes para nosotros ahora son estas dos:

-e
Determina el formato del fichero de audio que vamos a generar. Recibe como argumento vorbis, que producirá un fichero OGG (opción activada por defecto) o flac, que producirá un fichero FLAC)

-m
Convierte los caracteres europeos (letras acentuadas, letras con diéresis, etc) en caracteres sin acentos, diéresis, etc.


En cuanto a las opciones de configuración, el fichero de ejemplo que viene con las fuentes y que copiamos como nuestro .criprc contiene comentarios que describen cada una de ellas con suficiente precisión.

A partir de ahora, solo queda probar el funcionamiento de crip. El tutorial al que se refiere el README no es otra cosa que un ejemplo de un caso de uso. Pero conviene referir aquí un par de ejemplos más y comprobar con explicaciones en castellano el proceder de crip.

El CD elegido contiene dos piezas del compositor contemporáneo Helmut Lachenmann, una para cuarteto de cuerda, interpretada por el Berner Streichquartett y un dúo de guitarras, interpretado por Wilhelm Bruck y Theodor Ross.

En el primer ejemplo, el formato de salida será OGG y utilizaremos la opción -m para convertir los caracteres con umlaut (el mismo signo de nuestro diéresis, que en alemán tiene otra función) en vocales sin umlaut. Ello parece, en principio, necesario, habida cuenta de que el fichero que contiene el nombre de las pistas aparecerá codificado en latin-1 por crip y no en utf-8, con el consiguiente problema que implica en casi todos los sistemas operativos modernos, que están preparados para utf-8, donde tales caracteres aparecerán deformados. Precisamente, la opción -m es la que no funciona en la versión empaquetada con Debian, pero sí en la versión actual. Recuérdese que éste fue el pretexto por el que instalamos crip desde las fuentes.

El primer paso es moverse al directorio donde queremos que se produzca la generación de los ficheros temporales y los ficheros finales de audio. Como disponemos de espacio suficiente en nuestro home, nos desplazaremos al sitio donde acabarán residiendo los ficheros resultantes del proceso:

cd ~/musica/CDs

Y ahora, tras introducir el CD en el lector de CDs, conversaremos con crip:

crip -m

Lo primero que hace crip es devolvernos un mensaje inicial y una información general sobre nuestras actuales opciones de configuración:

crip v3.9 (http://bach.dynet.com/crip)

Please report all bugs, feature requests, or
general difficulties to charlton@dynet.com.

Options currently set to:
contact =
sourcemedia = CD
encodeto = vorbis
cddevice = /dev/cdrom
settitle = filename
editnames = on
editor = vim
askclassical (default) = off
skipalbumabv set only for: classical
mapeurochars = on
normalize = off
trimsilence = off
delfiles = on
skiprip = off
stopgap = off
ejectcd = off

Ripper: cdparanoia III release 10.2 (September 11, 2008) -v -z
Encoder: oggenc from vorbis-tools 1.2.0 -q 5

Inmediatamente a continuación, y si ya hay ficheros de audio en este directorio, crip nos avisará de ello y nos exigirá que confirmemos el proceso, para evitar sobrescribir ficheros existentes:

You currently have *.wav, *.ogg, *.flac, or *.tag files in the current
working directory. These are subject to being overwritten.

Press <enter> to proceed (or ctrl-C to abort):

Tras pulsar 'Enter', crip devuelve el resultado de buscar en FreeDB [Nótense los carácteres con umlaut que no han sido correctamente convertidos]:

DiscID: 100b1802
cddbID: 100b1802
artist: Helmut Lachenmann
title: Gran Torso - Salut f�r Caudwell
category: classical

total number of tracks: 2
track 1: 182 - 96276 [21:21.25]: Gran Torso (Musik f�r Streichquartett - 1971)
track 2: 96277 - 213184 [25:58.76]: Salut f�r Caudwell (Musik f�r 2 Gitarristen - 1977)

A continuación, crip solicita que introduzcamos, si queremos, los números de pista para cada grupo. Distinguir grupos de pistas hace posible etiquetar cada uno de ellos de forma distinta y aplicarles, uno a uno, ciertas operaciones de manipulación del audio. Esta función es evidentemente interesante en CDs como el nuestro, donde cada obra será ejecutada por intérpretes diferentes. Si no queremos grupos y queremos ripear todas las pistas, respondemos all. Si queremos que cada pista constituya un grupo, respondemos each, pero no podremos etiquetar ciertos campos de cada grupo de forma separada, como el de los intérpretes. En los casos no genéricos, definimos el primer grupo por el número de las pistas que lo constituirán, separados por espacios; el segundo, pulsando 'Enter' y añadiendo en él, de la misma forma, las pistas que le correspondan, etc. Para terminar la generación de grupos se escribe end. Éste es también el camino que se ha de seguir cuando se desea extraer sólo un cierto número de pistas en un solo grupo:

Enter the track numbers for each group (each group will be
replaygained/vorbisgained/normalized, trimmed, and tagged
as if it were one piece of music).

Delimit the track numbers on each line by a space.
Type "end" to go on to the next section.

Note that only the tracks you specify will be ripped.
Also note that if you list a track more than once, it will be
unnecessarily ripped more than once (so don't do it).
You can also enter "all" or "each" for grouping all tracks as
one group, or each track as a separate group respectively.
If input is "all" or "each" then the entire CD is ripped.

En nuestro caso, vamos a crear dos grupos, uno por cada pista [Nuestras respuestas a crip se muestran en azul en lo que sigue]:

> 1

> 2

> end


crip nos pida ahora que introduzcamos el género del CD:

Please enter the genre for this album.
Recommended genres are (from freedb.org):
blues (self explanatory)
classical (self explanatory)
country (self explanatory)
folk (self explanatory)
jazz (self explanatory)
newage (self explanatory)
reggae (self explanatory)
rock (including funk, soul, rap, pop, industrial, metal, etc.)
soundtrack (movies, shows)
data (ISO9660 and other data CDs)
misc (others that do not fit in the above categories)
Enter the genre for this album (single space = null): [classical]:

Pulsamos 'Enter', lo que significa que el género será 'classical'. Téngase en cuenta que se podría poner cualquier género aparte de los sugeridos, aunque no conviene en el caso de que el resultado se vaya a enviar a FreeDB.

La siguiente pregunta es relativa al compositor de la obra:

Since this is classical, there should be a composer.
If the composer is different for each group/list, just set the
value to null and add the composer tag manually with each list.
Enter composer (single space = null): [Helmut Lachenmann]:

El compositor es el mismo para los dos grupos, luego pulsamos 'Enter' y dejamos el que crip ha deducido por nosotros.

A partir de este momento podemos etiquetar por separado cada grupo:

Would you like to set the artist and miscellaneous labeling info for
the whole CD right now, or would you prefer to set it for each list?
(list/cd) [list]:

Pulsamos 'Enter', de forma que la opción list se aplique.

El título del album lo modificaremos para evitar el umlaut no reconocido:

Enter album name (single space = null): [Gran Torso - Salut f�r Caudwell ]: Gran Torso - Salut für Caudwell

Sí interesa consignar el sello discográfico:
Enter label name (single space = null): []: Aurophon

También podemos anotar el número de catálogo del disco. Nosotros lo dejaremos vacío. Esto es pulsaremos 'Enter' a esta pregunta:
Enter label catalog number (single space = null): []:

Con toda esta información básica, crip construye un fichero que contiene los títulos de las dos pistas. Nótese cómo aquí la opción -m ha hecho su efecto y las letras con umlaut han sido sustituidas por letras sin umlaut:

Track/filename labeling section...
Here are the computer-chosen filenames for the tracks that you've picked:
-------------------------------------------------------------------------------
Lachenmann_-_Gran_Torso_(Musik_fur_Streichquartett_-_1971)

Lachenmann_-_Salut_fur_Caudwell_(Musik_fur_2_Gitarristen_-_1977)

Edit the above filenames? [yes]:

Adviértase también que crip nos obliga a editar el fichero, aunque no vayamos a cambiar nada. Pulsamos 'Enter', que abrirá vim y en vim tecleamos :q para salir, y, de nuevo 'Enter' a esta nueva pregunta de confirmación:

Edit the above filenames? [no]:

La siguiente pregunta se refiere al director del primer grupo de pistas:

Enter conductor. If there isn't one, enter null.
(single space = null): [Helmut Lachenmann]:

Puesto que el CD es de música de cámara, no tiene director. Luego debemos pulsar espacio seguido de 'Enter'.

En la pregunta sobre los intérpretes sí tenemos que intervenir:

Since there is no conductor, there's probably a (main) performer.
Enter this performer (single space = null): [Helmut Lachenmann]:Berner Streichquartett

También anotaremos la fecha de producción del CD:

Enter the date of recording (single space = null): [don't put one]: (P) 1991

Ahora, crip nos ofrece la posibilidad de seguir añadiendo etiquetas. Nosotros pulsaremos 'Enter' y seguiremos adelante:

Type the name of a field tag that you'd like to add to
all these music files (or make up your own field tag name).
You can enter the fieldname then enter the data for that fieldname,
or you can enter fieldname=data all on one line.

Possible tag recommendations:
conductor ensemble opus
location performer copyright license

Just press <enter> (with nothing on the line) to finish:

A continuación, crip nos vuelve a repetir las mismas preguntas sobre director e intérpretes del grupo siguiente. Pulsamos 'Enter' en la primera y cumplimentamos adecuadamente la segunda:

Enter conductor. If there isn't one, enter null.
(single space = null): []:
Since there is no conductor, there's probably a (main) performer.
If this is true, enter this performer (single space = null): [Berner Streichquartett]: W. Bruck - Th. Ross

Las preguntas subsiguientes sobre fecha de producción y creación de más etiquetas se responden como antes.

Por fin, llegamos al final:

Just press <enter> (with nothing on the line) to finish:

Tras pulsar 'Enter', crip nos da un sumario del resultado y nos pregunta si queremos reeditar lo ya anotado para alguna de las pistas, enviar la información cumplimentada a FreeDB o comenzar a ripear:

01: Lachenmann_-_Gran_Torso_(Musik_fur_Streichquartett_-_1971)
title=Gran Torso (Musik fur Streichquartett - 1971)
artist=Berner Streichquartett
composer=Helmut Lachenmann
performer=Berner Streichquartett
date=(P) 1991
album=Gran Torso - Salut für Caudwell
tracknumber=01
genre=classical


02: Lachenmann_-_Salut_fur_Caudwell_(Musik_fur_2_Gitarristen_-_1977)
title=Salut fur Caudwell (Musik fur 2 Gitarristen - 1977)
artist=W. Bruck - Th. Ross
composer=Helmut Lachenmann
performer=W. Bruck - Th. Ross
date=(P) 1991
album=Gran Torso - Salut für Caudwell
tracknumber=02
genre=classical



Look at the above tags and make sure they are all okay.
You can edit any of these tag files by entering the track number.
You can also enter "submit" to submit this data to the freedb
CDDB database or just press <enter> by itself to go directly to
the ripping process! (or press ctrl-C to abort everything).
Enter track number, submit, or just press to Rip! :

Aquí pulsaremos 'Enter', nos tomamos un café y esperamos a que crip realice la extracción y codificación del los ficheros de audio.

El siguiente ejemplo sobre el mismo disco no conlleva ninguna novedad, salvo por el hecho de que los ficheros resultantes se codificarán como FLAC y que nos la jugaremos con los caracteres europeos:

crip -e flac

¿Cómo evitar el problema de crip con utf-8? Existe un truco. A la hora editar el fichero de los nombres de pistas con vim, ejecutamos desde dentro de vim la orden :set fileencoding=utf-8 y luego guardamos el fichero y salimos con :wq. Sí, es un hack rápido, pero es el único medio que hemos descubierto para salvar las apariencias, preservando los carácteres europeos y sin tratar de tocar el código de crip. Este truco funciona también con la versión empaquetada en Debian. Luego, quien no quiera pasar por la instalación desde las fuentes, podrá usar crip, y sin el problema de los caracteres europeos, instalando el paquete de Debian del mismo nombre.

Tengan feliz escucha.

No hay comentarios:

Publicar un comentario