Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Mar 2009 15:34:21 +0100
From:      Zoran Kolic <zkolic@sbb.co.yu>
To:        Roland Smith <rsmith@xs4all.nl>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: cd ripping to flac
Message-ID:  <20090307143421.GA942@faust.net>
In-Reply-To: <20090307090054.GA23931@slackbox.xs4all.nl>
References:  <20090307071228.GA1134@faust.net> <20090307090054.GA23931@slackbox.xs4all.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090307143421.GA942>