Añade cabecera de licencia en el guion
cdacb9b4 — josealberto4444 1 year, 5 months ago
Cambia a mp3 variable el de más alta calidad
80f6f5d9 — josealberto4444 1 year, 10 months ago
Comillas buenas son bien

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.

Mi primerito escrih en bash

Esto es un simple archivo de órdenes de bash (mi primerito en bash) 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 y número de pista.

¿Por qué libero esta chorradita?

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 es lo primero que escribo en bash en mi vida, y seguro que es una mierda, 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 debe recibir un archivo con extensión .txt que contenga en las primeras n líneas el título de las n pistas del disco, y luego, en las últimas tres líneas, autor, título del álbum y año.

Tienes un archivo de ejemplo en el repo para un CD de 12 pistas, el cual te pido que leas con detenimiento y humor, por favor. =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, pasándolo a un formato en bruto al disco duro, lo cual malgasta espacio, pero serán archivos auxiliares que convertiremos a los formatos que queremos y al final se borrarán solos. También se guarda un registro de cómo ha ido esta operación, el cual tomará el nombre del archivo TXT que contiene la información de cada CD.

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/Álbum/Pista con las canciones en cada formato, por si se quieren pasar varios CD sin preocuparse de mover los archivos de cada uno.

Notas técnicas y limitaciones

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 la repanocha, 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 y teóricamente indistinguible al oído.
  • 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).

Limitaciones conocidas:

  • El álbum solo puede tener un artista, no puede cambiar el artista para cada canción. Esto lo he dejado así porque me costaría mucho trabajo aprender cómo se haría (se me ocurre darle otro archivo de entrada con los artistas en cada línea, pero habría que retocarlo todo) y además creo que no ahorraría mucho trabajo con respecto a escribirlo luego cambiando los atributos de las canciones con un programa apañado (como kid3, que a mí me gusta bastante).
  • Lo mismo con el año.
  • Probablemente haya caracteres en los atributos que den problemas (quizá las comillas dobles). «Me gusta el riesgo».

Si te animas a corregir algo o añadir alguna nueva funcionalidad, acepto sugerencias de cualquiera, ¡incluso de ti! =) Bifurca el proyecto y hazme la solicitud, que la revisaré encantado. Lo mismo para encontrar fallos, como ya he dicho, que así aprendo.