Scripts to rip my cds
Merge branch 'main' of git.sr.ht:~increscent/cds
Updated tagging
We actually want that file :)


browse  log 



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


#Rip my cds on by FreeBSD laptop :)

I originally wrote this in Bash but I decided to switch to Common Lisp because I'm trying to learn it.


To rip a cd:

  • Insert it into the drive
  • Find the cddb file on gnudb.org
  • Download the file (e.g. wget https://gnudb.org/gnudb/rock/34087705)
  • Run rip.cl with the cddb file (e.g. ./rip.cl 34087705)


Note: Only tested on FreeBSD 12

  • cdda2wav
  • lame (must be built from ports)
  • sbcl
  • cdcontrol

#Common Issues

  • Sometimes the first track on the cd is very short (not a real track). Once all tracks are copied from the cd, the program will fail because the number of .wav files must match the number of tracks in the cddb listing. If this happens, remove the disc, delete the non-track .wav file, and run the program again (you will have to re-download the cddb file).
  • One time a track name was so long that it took up 2 lines in the cddb file (both lines had the same key). You'll have to edit the file to make each track name occupy only 1 line.
  • If you run the program with no disc present, it will still try to convert the .wav files it finds in the target folder.
  • If you have a 2-disc album, you can either split it into two folders (with two separate cddb files), or you can rip one disc after the other. The easiest way to make a 2-disc album with one cddb file is to:
    • Rip the second disc (conversion will fail because there are not enough .wav files yet)
    • Rename the .wav files to have the correct track numbers (e.g. ls *.wav | sudo awk '{i += 1; system(sprintf("mv %s _%.2d.wav", $0, i + 12));}')
    • Rip the first disc (this should also do the conversion)