cd ripping to flac

Zoran Kolic zkolic at sbb.co.yu
Sat Mar 7 06:39:45 PST 2009


Thanx for reply!

> It won't work if you want the songs to have the right metadata; You'd
> have to supply that to the pipe in some way...

K. I would use metaflac anyway.

> For ripping I use cdparanoia: 'cdparanoia -B 1' rips all tracks.

I was intended to have something like:
  cdparanoia -B - | flac -

> The following perl scripts reads a text file containing the metadata
> (artist, album name, track data) and calls flac:
> 
> ----- make-flac -----
> #!/usr/bin/perl
> #
> # Compiles a list of wav files into flac files.
> #
> # Author: R.F. Smith <rsmith at xs4all.nl>
> # Time-stamp: <2008-07-30 23:53:00 rsmith>
> #
> # I, the copyright holder of this work, hereby release it into
> # the public domain. This applies worldwide.
> #
> # In case this is not legally possible, I grant any entity the right to use
> # this work for any purpose, without any conditions, unless such conditions
> # are required by law.
> 
> # Check for programs that this script needs.
> chomp($flac = `which flac 2>/dev/null`);
> -x $flac || die "Cannot find flac: $!\n";
> #chomp($norm = `which normalize 2>/dev/null`);
> #-x $norm || die "Cannot find normalize: $!\n";
> 
> # Get the name of the file containing the titles.
> if ($ARGV[0] ne "") {
>     $fname = $ARGV[0];
> } else {
>     $fname = "titles";
> }
> 
> # open the list of song titles
> open (TITELS, $fname) || die "cannot open $fname: $!\n";
> 
> # The titles file format is as follows:
> # ------------------------------------
> # album title
> # artist
> # 01 title of 1st song
> # ..
> # 14 title of 14th song
> # ..
> 
> # get the album title and performer name
> chomp($album = <TITELS>);
> $album ne "" || die "cannot read album name";
> chomp($artist = <TITELS>);
> $artist ne "" || die "cannot read artist name";
> 
> # Normalize the wav files.
> #printf("Normalizing .wav files...\n");
> #`$norm -b track*.cdda.wav`;
> 
> # go over all the songs
> while(<TITELS>) {
>     chomp;
>     ($num, $title) = split (' ', $_, 2);
>     printf ("Encoding \"%s\" as %s\n", $title, "track".$num.".flac");
>     # invoke the flac encoder.
>     do {
>         $rc = system ($flac, "-8", "-TARTIST=".$artist, "-TALBUM=".$album, 
>                       "-TTITLE=".$title,  "-TTRACKNUMBER=".$num, 
>                       "-o", "track".$num.".flac", "track".$num.".cdda.wav");
>         if ($rc != 0) {print "\nError,", $rc, "starting again";}
>     } until $rc == 0;
> }
> ----- make-flac -----

He-he! flac defaults to -5, I think. Probably it would do the same trick
as pipe, just metadata are stored with no nad work. Thank you once
more.
Best regards

                                       Zoran



More information about the freebsd-stable mailing list