[Flac] FLAC CD Archive

Peter Edwards
Sat, 20 Jan 2007 17:18:51 -0000

Hi,

Bit late to join in the discussion but I've just read through the CD
archiving discussion and was particular interested in Dax's method,
described here (also included below):

http://lists.xiph.org/pipermail/flac/2006-September/000611.html

So far I've just been flac-ing my CDs to individual one-flac-per-track
files, however it appears I've been missing some of the other bits of
info on the CD.

I haven't been using abcde (i've been using KAudioCreator which is a
front-end for cdparanoia, AIUI) so I've been a bit lost by some of the
detailed methods described by others, as well as Dax.

Given that I've already flac-ed a good many CDs, is it enough to go
back and run a batch file like this on each CD:

cd-discid /dev/hdc > discid.txt
cdrdao read-toc --device /dev/hdc toc.txt

and save those txt files with the flac albums.  Would that be enough
to be able to re-generate the CD again later with the same cddbid
etc.?  i.e. would that extract all info I might conceivably require
again later?

Thanks!

Peter.

> I went with the one song per flac file approach with the ability to
> reproduce the exact original CD if needed.
>
> The Ripping/Encoding process goes like this:
>
> cd-discid /dev/hdc > discid.txt
> cdrdao read-toc --device /dev/hdc toc.txt
> cdrdao read-cddb toc.txt
> Now rip and encode to FLAC (each track separate) with metadata.
>
> I have a modified abcde that does this. The modification is in my
> abce.conf I added is:
>
> post_read ()
> {
> # Figure out what OUTPUTFILEDIR should be
> export `eval $($CDDBTOOL parse "$CDDBDATA")`
> export ALBUMFILE=$(mungefilename "$DALBUM")
> splitvarious
> export ARTISTFILE=$(mungefilename "$TRACKARTIST")
> export
OUTPUTFORMAT='${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
> export
VAOUTPUTFORMAT='Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
> if [ "$VARIOUSARTISTS" = "y" ]; then
>     export OUTPUTFILE=$(eval echo $VAOUTPUTFORMAT)
>     else
>     export OUTPUTFILE=$(eval echo $OUTPUTFORMAT)
> fi
> export OUTPUTFILEDIR=$(dirname "$OUTPUTDIR/$OUTPUTFILE")
> # Sheesh glad that is done. Now save the discid.txt for comparison later
> # and the toc.txt
> mkdir -p "$OUTPUTFILEDIR"
> cd-discid $CDROM > "$OUTPUTFILEDIR/discid.txt"
> cdrdao read-toc --with-cddb --cddb-timeout 90 --device $CDROM
"$OUTPUTFILEDIR/toc.txt"
> }
>
> And then I inserted a call to my post_read into abcde.
>
> Edit the abcde script and right before the line:
> # We are now finished with the cdrom - it can be safely ejected. ...
>
> Add the line:
>
> post_read # Execute the user-defined post-read function before ejecting
>
> Now to go back to the other direction, create an "original CD"
(ie, one
> with the same CDDB discid), do the following:
>
> cd /path/to/album/
> shntool join --stdout *.flac > data.wav
> cdrdao write --device /dev/hdc toc.txt
> rm data.wav
>
> This is the procedure I used on several hundred CDs I own in order to
> get a FLAC archive of them. I use several Squeezeboxes in my house to
> listen to them.
>
> Dax Kelson
> Guru Labs