~josealberto4444/escrih-CD

Permite nombrar carpetas con número de disco
Mueve mejor los archivos de whipper

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~josealberto4444/escrih-CD
read/write
git@git.sr.ht:~josealberto4444/escrih-CD

You can also use your local clone with git send-email.

#Guion de POSIX shell para extraer pistas de un CD

Esto es un simple archivo de órdenes del shell para pasar un CD de música a mp3 de alta calidad, mp3 de mediana calidad y flac (sin pérdida), con los siguientes atributos añadidos automáticamente a cada formato a través de un fichero: artista, álbum, año, título de pista, número de pista y, opcionalmente, número de disco en caso de que el álbum comprenda varios discos. Para ello, usa whipper, que es el mejor programa que conozco, siendo capaz de extraer las pistas bit a bit sin error.

#Por qué libero esto

Primero, por lo de siempre: por si le sirve a alguien, aunque creo que los CD tienen pocos seguidores hoy en día, pero bueno…

Segundo, porque seguro que es muy mejorable, así que, por favor, ayúdame a mejorarlo. Estaría genial que alguien me dijera los problemillas que tenga, así aprendo más. =)

¡Gracias!

#Cómo se ejecuta

Este programa recibe:

  1. Un archivo de texto plano que contenga, en las primeras n líneas, el título de las n pistas del disco, y luego, en las últimas cuatro líneas:
    1. Número de disco (opcional, si no corresponde, deja esta línea en blanco). En caso de que hayas puesto número de disco, también opcionalmente puedes poner un tabulador y después una de las siguientes opciones:
      • Un guion («-», sin comillas) si quieres que cada pista lleve al principio el número de disco al que pertenece (por ejemplo, 1-12-Título.flac para la pista 12 del disco 1).
      • Paréntesis («()», sin comillas) si quieres que cada disco esté en una carpeta diferente, añadiendo al final, por ejemplo, (CD 1) para el primer disco.
    2. Artista.
    3. Título del álbum.
    4. Año.
  2. Opcionalmente, si el artista va cambiando de una pista a otra, le puedes poner como segundo argumento otro archivo de texto con el artista que corresponda a cada pista en cada línea de ese archivo.

Tienes un archivo de ejemplo en el repo para un CD de 12 pistas de un solo artista, el cual te pido que leas con detenimiento y humor, por favor, que lo he escrito con mi mejor intención. =P Con ese, habría que ejecutar el programa así:

$ ./escrih.sh ejemplo.txt

Primero se mostrarán estadísticas sobre el CD y el lector, que sirven para saber si hay algo mal, como si al lector le pasa algo o si hay más pistas en el CD de las que parecía.

Luego se procederá a leer el CD con whipper, que creará unos archivos flac iniciales. Estos se pasarán a formato wav, que usaremos para crear los formatos que queremos y al final se borrarán.

A continuación se empezarán a convertir a los distintos formatos. Se crearán las carpetas mp3_bajo (el de más baja calidad), mp3_alto (el de más alta calidad) y flac, y en cada una de ellas se seguirá la estructura Artista/Año-Álbum/Número-Título con las canciones en cada formato, por si se quieren pasar varios CD sin preocuparse de mover los archivos de cada uno.

#Formatos

Las conversiones son:

  • A mp3 de aproximadamente 128 kbps. En realidad es variable, y la media cambia bastante de un archivo a otro porque no he querido fijarla a mano, pero al hacer la media sobre varios archivos, sí que sale eso más o menos. He preferido confiar en los desarrolladores de lame y no pasarme con los ajustes, sino usar configuraciones relativamente predefinidas. El programa lame parece bastante bueno, así que me fío. :3
  • A mp3 de calidad variable pero la mayor posible, es decir, cercano a 320 kbps constantes, pero ocupando un 15% menos.
  • A flac. Es un formato sin pérdida, pero ocupa muchísimo menos que el formato en bruto (también muchísimo más que los mp3). He escogido la máxima compresión posible aunque sea más lenta (es brutalmente rápida para lo que estaba acostumbrado cuando usaba programas que leían del CD para cada formato, así que a mí me vale).

Si te animas a corregir algo o añadir alguna nueva funcionalidad, ¡acepto sugerencias! =) Puedes mandarme un correo en texto plano avisándome de algún error o con una consulta o parche a ~josealberto4444/public-inbox@lists.sr.ht (consulta esta guía si necesitas ayuda para mandar parches por correo). ¡Muchas gracias!