[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[abcde] Patch for FLAC support (including track comments)
Howdy all,
Here's a patch against the Debian package of abcde-2.0.3-1 which enables
FLAC support (the Free Lossless audio Codec).
It is based on an earlier patch by Ben Konrath, but adds support for
vorbis comments using the 'metaflac' tool.
I hope support for FLAC can make it into the official abcde package;
it's an ideal way to archive audio CDs without information loss, for
later processing into whatever lossy codec is useful, or just for
playing straight from the FLAC.
--
\ "We demand rigidly defined areas of doubt and uncertainty!" -- |
`\ Vroomfondel, _The Hitch-Hiker's Guide To The Galaxy_, Douglas |
_o__) Adams |
bignose@zip.com.au F'print 9CFE12B0 791A4267 887F520C B7AC2E51 BD41714B
-- Attached file included as plaintext by Listar --
diff -ruN abcde-2.0.3.debian/abcde abcde-2.0.3/abcde
--- abcde-2.0.3.debian/abcde 2002-01-28 16:44:02.000000000 +1100
+++ abcde-2.0.3/abcde 2002-11-26 12:57:26.000000000 +1100
@@ -6,7 +6,7 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
+#
# Copyright for this work is to expire January 1, 2010, after which it
# shall be public domain.
@@ -27,7 +27,7 @@
echo "-l Use low disk space algorithm"
echo "-n No lookup. Don't query CDDB, just create and use template"
echo "-N Noninteractive. Never prompt for anything"
-echo "-o Output file type - either \"ogg\" or \"mp3\""
+echo "-o Output file type - one of \"ogg\", \"flac\" or \"mp3\""
echo "-r [host1,host2...] Also encode on these remote hosts"
echo "-x Eject CD after all tracks are read"
echo "Tracks is a space-delimited list of tracks to grab."
@@ -144,7 +144,7 @@
{
FR="$1"
TO="$2"
-
+
case "$TO" in
/*) ;; # No processing is needed for absolute paths
*)
@@ -161,7 +161,7 @@
TO="../$TO"
done
esac
-
+
echo $TO
}
@@ -221,7 +221,8 @@
{
COMMENTOUTPUT="$(eval echo ${COMMENT})"
run_command '' echo "Tagging track $1 of $TRACKS: $TRACKNAME..."
- if [ "$OUTPUTTYPE" = "mp3" ]; then
+ case "$OUTPUTTYPE" in
+ mp3)
# Amazingly, id3 and id3v2 have identical -a, -A, -c, -t, and -T switches
# ...except id3v2's -c is completely broken (there's a bug in id3lib
# v3.7.x keeping -c from being properly implemented)
@@ -232,7 +233,8 @@
run_command tagtrack-$1 $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
-A "$DALBUM" -a "$TRACKARTIST" -t "$TRACKNAME" -T "$1" "$ABCDETEMPDIR/track$1.$OUTPUTTYPE"
fi
- else
+ ;;
+ ogg)
# vorbiscomment can't do in-place modification, mv the file first
if [ -f "$ABCDETEMPDIR/track$1.$OUTPUTTYPE" -a ! -f "$ABCDETEMPDIR/track$1.uncommented.$OUTPUTTYPE" ]; then
mv "$ABCDETEMPDIR/track$1.$OUTPUTTYPE" "$ABCDETEMPDIR/track$1.uncommented.$OUTPUTTYPE"
@@ -254,7 +256,24 @@
else
mv "$ABCDETEMPDIR/track$1.uncommented.$OUTPUTTYPE" "$ABCDETEMPDIR/track$1.$OUTPUTTYPE"
fi
- fi
+ ;;
+ flac)
+ VCOPT_ARTIST=--set-vc-field="ARTIST=$TRACKARTIST"
+ VCOPT_ALBUM=--set-vc-field="ALBUM=$DALBUM"
+ VCOPT_TITLE=--set-vc-field="TITLE=$TRACKNAME"
+ VCOPT_TRACKNUMBER=--set-vc-field="TRACKNUMBER=$1"
+ run_command tagtrack-$1 $METAFLAC $METAFLACOPTS \
+ "$VCOPT_ARTIST" \
+ "$VCOPT_ALBUM" \
+ "$VCOPT_TITLE" \
+ "$VCOPT_TRACKNUMBER" \
+ "$ABCDETEMPDIR/track$1.$OUTPUTTYPE"
+ ;;
+ *)
+ # no tagging for this output type, fake it
+ run_command tagtrack-$1 $NULLCMD
+ ;;
+ esac
}
# do_encode [tracknumber] [hostname]
@@ -295,6 +314,21 @@
;;
esac
;;
+ flac)
+ case "$2" in
+ %local*%)
+ case "$ENCODERSYNTAX" in
+ flac) run_command encodetrack-$1 nice $ENCNICE $ENCODER $ENCODEROPTS -o "$OUT" "$IN" ;;
+ esac
+ ;;
+ *)
+ run_command encodetrack-$1 $DISTMP3 $DISTMP3OPTS "$2" "$IN" "$OUT" >/dev/null 2>&1
+ ;;
+ esac
+ ;;
+ *)
+ echo "abcde error: Invalid OUTPUTTYPE defined" >&2
+ ;;
esac
# Only remove .wav if the encoding succeeded
if checkerrors encodetrack-$1; then :; else
@@ -310,7 +344,7 @@
do_move ()
{
# Create ALBUMFILE, ARTISTFILE, TRACKFILE
- # Munge filenames as follows:
+ # Munge filenames as follows:
# ' ' -> '_'
# '/' -> '_'
# ''' -> ''
@@ -336,7 +370,7 @@
# do_playlist
# Create the playlist if wanted
# Variables used:
-# PLAYLISTFORMAT, PLAYLISTDATAPREFIX, OUTPUTDIR,
+# PLAYLISTFORMAT, PLAYLISTDATAPREFIX, OUTPUTDIR,
do_playlist ()
{
# Create a playlist file for the playlist data to go into, wiping it out if
@@ -389,13 +423,13 @@
else
TRACKINFO=$(cat "$WAVOUTPUTDIR/abcde.$DISCID/discid")
fi
-
+
# Get a full enumeration of tracks, sort it, and put it in the TRACKQUEUE.
# This needs to be done now because a section of the resuming code will need
# it later.
-
+
TRACKS=$(echo $TRACKINFO | cut -f2 -d' ')
-
+
if [ -z "$TRACKQUEUE" ]; then
echo -n "Grabbing entire CD - tracks: "
X=0
@@ -411,7 +445,7 @@
TRACKQUEUE=$(echo $TRACKQUEUE | sed 's-[^0-9 ]--g' | tr ' ' '\n' | grep -v ^$ | sort -n | uniq | tr '\n' ' ' | sed 's- $--g')
echo Grabbing tracks: "$TRACKQUEUE"
fi
-
+
for LASTTRACK in $TRACKQUEUE; do :; done
# get the number of digits to pad TRACKNUM with - we'll use this later
TRACKNUMPADDING=$(echo -n $LASTTRACK | wc -c | tr -d ' ')
@@ -420,7 +454,7 @@
# We have the discid, create a temp directory after it to store all the temp
# info
-
+
ABCDETEMPDIR="$WAVOUTPUTDIR/abcde.$(echo $TRACKINFO | cut -f1 -d' ')"
if [ -e "$ABCDETEMPDIR" ]; then
echo -n "abcde: attempting to resume from $ABCDETEMPDIR"
@@ -488,7 +522,7 @@
fi
cat /dev/null > "$ABCDETEMPDIR/status"
fi
-
+
# Create the discid file
echo "$TRACKINFO" > "$ABCDETEMPDIR/discid"
@@ -605,7 +639,7 @@
if [ "$(wc -l < $ABCDETEMPDIR/cddbquery | tr -d ' ')" -eq 3 ]; then
echo "One ${IN}exact match:" >> "$ABCDETEMPDIR/cddbchoices"
tail +2 "$ABCDETEMPDIR/cddbquery" | head -1 >> "$ABCDETEMPDIR/cddbchoices"
- echo cddb-choice=1 >> "$ABCDETEMPDIR/status"
+ echo cddb-choice=1 >> "$ABCDETEMPDIR/status"
else
echo "Multiple ${IN}exact matches:" >> "$ABCDETEMPDIR/cddbchoices"
fi
@@ -628,7 +662,7 @@
done )
CDDBCHOICES=$(expr $(cat "$ABCDETEMPDIR/cddbquery" | wc -l) - 2)
;;
- esac
+ esac
echo "cddb-readcomplete" >> "$ABCDETEMPDIR/status"
fi
}
@@ -674,13 +708,13 @@
# It's all going to fit in one page, cat it
cat "$ABCDETEMPDIR/cddbchoices" >&2
fi
-
+
# I'll take CDDB read #3 for $400, Alex
echo -n "Which entry would you like abcde to use? [1-$CDDBCHOICES]: " >&2
read CDDBCHOICE
# Make sure we get a valid choice
CDCHOICENUM=$(echo $CDDBCHOICE | xargs printf %d 2>/dev/null)
- while [ $CDCHOICENUM -lt 1 ] || [ $CDCHOICENUM -gt $CDDBCHOICES ]; do
+ while [ $CDCHOICENUM -lt 1 ] || [ $CDCHOICENUM -gt $CDDBCHOICES ]; do
echo "Invalid selection. Please choose a number between 1 and $CDDBCHOICES." >&2
echo -n "Selection [1-$CDDBCHOICES]: " >&2
read CDDBCHOICE
@@ -701,14 +735,14 @@
echo "cddb-choice=1" >> "$ABCDETEMPDIR/status"
fi
fi
-
+
# sanity check
if checkstatus cddb-choice >/dev/null; then :; else
echo "abcde: internal error: cddb-choice not recorded." >&2
exit 1
fi
CDDBDATA="$ABCDETEMPDIR/cddbread.$(checkstatus cddb-choice)"
-
+
echo -n "Edit selected CDDB data? [y/n] (n): " >&2
if [ "$INTERACTIVE" = "y" ]; then
read EDITCDDB
@@ -739,7 +773,7 @@
if [ -w "$CDDBDATA~" ]; then
rm -f "$CDDBDATA~"
fi
- fi
+ fi
# Some heuristics first. Look at Disc Title, and if it starts with
# "Various", then we'll assume Various Artists
@@ -816,11 +850,11 @@
fi
echo "variousartists=$VARIOUSARTISTS" >> "$ABCDETEMPDIR/status"
echo "variousartiststyle=$VARIOUSARTISTSTYLE" >> "$ABCDETEMPDIR/status"
-
+
if [ "$UNINTENTIONALLY_ANGER_THE_FREEDB_PEOPLE" = "y" ]; then
# This works but does not have the necessary error checking
# yet. If you are familiar with the CDDB spec
- # (see http://www.freedb.org/src/latest/DBFORMAT)
+ # (see http://www.freedb.org/src/latest/DBFORMAT)
# and can create an error-free entry on your own, then put
# UNINTENTIONALLY_ANGER_THE_FREEDB_PEOPLE=y in your
# abcde.conf to enable it. Put CDDBSUBMIT=email@address in
@@ -848,7 +882,7 @@
}
# do_cdread [tracknumber]
-#
+#
do_cdread ()
{
# The commands here don't go through run_command because they're never supposed to be silenced
@@ -872,7 +906,7 @@
if [ "$RETURN" != "0" ]; then
# Thank goodness errors is only machine-parseable up to the
# first colon, otherwise this woulda sucked
- echo "readtrack-$UTRACKNUM: $CDROMREADER returned code $RETURN" >> "$ABCDETEMPDIR/errors"
+ echo "readtrack-$UTRACKNUM: $CDROMREADER returned code $RETURN" >> "$ABCDETEMPDIR/errors"
return $RETURN
else
echo readtrack-$UTRACKNUM >> "$ABCDETEMPDIR/status"
@@ -901,6 +935,7 @@
VARIOUSARTISTSTYLE=forward
# program paths - defaults to checking your $PATH
+NULLCMD=true
LAME=lame
GOGO=gogo
BLADEENC=bladeenc
@@ -909,8 +944,10 @@
MP3ENC=mp3enc
VORBIZE=vorbize
OGGENC=oggenc
+FLAC=flac
ID3=id3
ID3V2=id3v2
+METAFLAC=metaflac
CDPARANOIA=cdparanoia
CDDA2WAV=cdda2wav
WGET=wget
@@ -929,8 +966,10 @@
MP3ENCOPTS=
VORBIZEOPTS=
OGGENCOPTS=
+FLACOPTS=
ID3OPTS=
ID3V2OPTS=
+METAFLACOPTS=
CDPARANOIAOPTS=
CDDA2WAVOPTS=
WGETOPTS=
@@ -1007,7 +1046,7 @@
# Range parsing code courtesy of Vincent Ho
RSTART=$(echo $1 | cut -f1 -d-)
REND=$(echo $1 | cut -f2 -d-)
- if [ "$RSTART" = "$REND" ]; then
+ if [ "$RSTART" = "$REND" ]; then
NEWTRACKS="$RSTART"
else
NEWTRACKS=$(seq -s ' ' $RSTART $REND)
@@ -1029,13 +1068,23 @@
;;
esac
-# If nothing has been specified, use oggenc for oggs and lame for mp3s
+# If nothing has been specified, use oggenc for oggs, lame for mp3s and flac
+# for flacs
if [ "$ENCODERSYNTAX" = "default" ]; then
- if [ "$OUTPUTTYPE" = "ogg" ]; then
+ case "$OUTPUTTYPE" in
+ ogg)
ENCODERSYNTAX=oggenc
- else
+ ;;
+ mp3)
ENCODERSYNTAX=lame
- fi
+ ;;
+ flac)
+ ENCODERSYNTAX=flac
+ ;;
+ *)
+ echo "abcde error: Invalid OUTPUTTYPE defined" >&2
+ ;;
+ esac
fi
# decide which encoder
@@ -1072,6 +1121,10 @@
ENCODEROPTS="$OGGENCOPTS"
ENCODER="$OGGENC"
;;
+ flac)
+ ENCODEROPTS="$FLACOPTS"
+ ENCODER="$FLAC"
+ ;;
esac
# and which tagger
@@ -1095,9 +1148,22 @@
# Don't check for stuff if it's not needed
-if [ "$REMOTEHOSTS" ]; then NEEDDISTMP3=y; fi
-if [ "$OUTPUTTYPE" = "mp3" ]; then NEEDTAGGER=y; fi
-if [ "$OUTPUTTYPE" = "ogg" ]; then NEEDCOMMENTER=y; fi
+if [ "$REMOTEHOSTS" ]; then NEEDDISTMP3=y; fi
+
+# some output types support tagging/commenting, some don't
+case "$OUTPUTTYPE" in
+mp3)
+ NEEDTAGGER=y
+ ;;
+ogg)
+ NEEDCOMMENTER=y
+ ;;
+flac)
+ NEEDCOMMENTER=y
+ ;;
+*)
+ ;;
+esac
# Make sure a buncha things exist
for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $ENCODER $WGET \
@@ -1111,7 +1177,7 @@
elif [ ! -x $(which $X) ]; then
echo "abcde error: $X is not executable." >&2
exit 1
- fi
+ fi
done
CDROMREADER="$CDROMREADER $CDROMREADEROPTS"
@@ -1246,7 +1312,7 @@
# Set TRACKNUM, TRACKNAME
if [ -e "$CDDBDATA" ]; then
TRACKNUM=$(printf %0.${TRACKNUMPADDING}d ${UTRACKNUM})
- CDDBTRACKNUM=$(expr $UTRACKNUM - 1)
+ CDDBTRACKNUM=$(expr $UTRACKNUM - 1)
TRACKNAME=$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | head -1 | cut -f2 -d= | tr -d \[:cntrl:\])
splitvarious
fi
@@ -1311,3 +1377,5 @@
fi
)
exit 0
+
+# vim: noet
diff -ruN abcde-2.0.3.debian/abcde.1 abcde-2.0.3/abcde.1
--- abcde-2.0.3.debian/abcde.1 2001-08-21 11:22:33.000000000 +1000
+++ abcde-2.0.3/abcde.1 2002-11-25 18:28:42.000000000 +1100
@@ -1,6 +1,6 @@
.TH ABCDE 1
.SH NAME
-abcde \- Grab an entire CD and compress it to Ogg or MP3 format.
+abcde \- Grab an entire CD and compress it to Ogg Vorbis, FLAC or MP3 format.
.SH SYNOPSIS
.B abcde
.I [options] [tracks]
@@ -9,8 +9,8 @@
tagging or commenting it, is very involved.
.BR abcde
is designed to automate this. It will take an entire CD and convert it into
-a compressed audio format - Ogg Vorbis or MPEG Audio Layer III. With one
-command, it will:
+a compressed audio format - Ogg Vorbis, Free Lossless Audio Codec or MPEG
+Audio Layer III. With one command, it will:
.TP
.B *
Do a CDDB query over the Internet to look up your CD
@@ -19,7 +19,7 @@
Grab a track from your CD
.TP
.B *
-Compress it to Ogg or MP3 format
+Compress it to Ogg Vorbis, FLAC or MP3 format
.TP
.B *
Comment or ID3 tag it
@@ -66,7 +66,7 @@
Use the low-diskspace algorithm. See the LOWDISK configuration variable.
.TP
.B \-o [filetype]
-Select output type. Can be either "ogg" or "mp3". See the OUTPUTTYPE
+Select output type. Can be one of "ogg", "flac" or "mp3". See the OUTPUTTYPE
configuration variable.
.TP
.B \-r [hosts...]
@@ -85,11 +85,11 @@
will process the entire CD. Accepts ranges of track numbers -
"abcde 1-5 7 9" will process tracks 1, 2, 3, 4, 5, 7, and 9.
.SH OUTPUT
-Each track is, by default, placed in a separate file named after the track
-in a subdirectory named after the artist under the current directory. Each
-file is given an extension identifying its compression format, '.ogg'
-or '.mp3'. This can be modified using the OUTPUTFORMAT and VAOUTPUTFORMAT
-variables in your abcde.conf.
+Each track is, by default, placed in a separate file named after the
+track in a subdirectory named after the artist under the current
+directory. Each file is given an extension identifying its compression
+format, '.ogg', '.flac' or '.mp3'. This can be modified using the
+OUTPUTFORMAT and VAOUTPUTFORMAT variables in your abcde.conf.
.SH CONFIGURATION
abcde sources two configuration files on startup - /etc/abcde.conf and
$HOME/.abcde.conf, in that order. Here is a list of options abcde recognizes:
@@ -98,11 +98,12 @@
Specifies a server to use for CDDB lookups.
.TP
.B ENCODERSYNTAX
-Specifies the style of encoder to use. Valid options are \'oggenc\' (default
-for Ogg Vorbis), \'vorbize\', \'lame\' (default for MP3), \'gogo\', \'bladeenc\',
-\'l3enc\', and \'mp3enc\'. This affects the default location of the binary,
-the variable to pick encoder command-line options from, and where the options
-are given.
+Specifies the style of encoder to use. Valid options are \'oggenc\'
+(default for Ogg Vorbis), \'vorbize\', \'flac\' (default for flacs),
+\'lame\' (default for MP3), \'gogo\', \'bladeenc\', \'l3enc\', and
+\'mp3enc\'. This affects the default location of the binary, the
+variable to pick encoder command-line options from, and where the
+options are given.
.TP
.B HELLOINFO
Specifies the Hello information to send to the CDDB server. The CDDB
@@ -118,17 +119,17 @@
over 100MB for a machine that can encode music as fast as it can read it).
.TP
.B OUTPUTFORMAT
-Specifies the format for completed Ogg or MP3 filenames. Variables are included
-using standard shell syntax. Allowed variables are ALBUMFILE, ARTISTFILE,
-TRACKFILE, and TRACKNUM. Default is
+Specifies the format for completed Ogg, FLAC or MP3 filenames. Variables
+are included using standard shell syntax. Allowed variables are
+ALBUMFILE, ARTISTFILE, TRACKFILE, and TRACKNUM. Default is
\'${ARTISTFILE}/${TRACKFILE}.${OUTPUTTYPE}\'.
Make sure to use single quotes around this variable. TRACKNUM is
automatically zero-padded.
.TP
.B OUTPUTTYPE
-Specifies the encoding format to output as well as the default extension and
-encoder. Defaults to "ogg". Valid settings are "ogg" (Ogg Vorbis) and "mp3"
-(MPEG-1 Audio Layer 3).
+Specifies the encoding format to output as well as the default extension
+and encoder. Defaults to "ogg". Valid settings are "ogg" (Ogg Vorbis),
+"flac" (Free Lossless Audio Codec) and "mp3" (MPEG-1 Audio Layer 3).
.TP
.B VAOUTPUTFORMAT
Just like OUTPUTFORMAT but for Various Artists discs. Default is whatever
@@ -137,14 +138,14 @@
.B PATHNAMES
The following configuration file options specify the pathnames of their
respective utilities: LAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC,
-VORBIZE, OGGENC, ID3, ID3V2, CDPARANOIA, CDDA2WAV, WGET, CDDISCID,
+VORBIZE, OGGENC, FLAC, ID3, ID3V2, CDPARANOIA, CDDA2WAV, WGET, CDDISCID,
CDDBTOOL, EJECT, DISTMP3, and VORBISCOMMENT.
.TP
.B COMMAND-LINE OPTIONS
If you wish to specify command-line options to any of the programs abcde
uses, set the following configuration file options: LAMEOPTS, GOGOOPTS,
BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS,
-OGGENCOPTS, ID3OPTS, ID3V2OPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, WGETOPTS,
+OGGENCOPTS, FLACOPTS, ID3OPTS, ID3V2OPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, WGETOPTS,
CDDBTOOLOPTS, EJECTOPTS, and DISTMP3OPTS.
.TP
.B MAXPROCS
@@ -172,7 +173,8 @@
.B COMMENT
Specifies a comment to embed in the ID3 or Ogg comment field of each
finished track. Can be up to 28 characters long. Supports the same
-syntax as OUTPUTFORMAT. Does not currently support ID3v2.
+syntax as OUTPUTFORMAT. Does not currently support ID3v2 or the comment
+capabilities in FLAC version 1.0.4 and above.
.TP
.B REMOTEHOSTS
Specifies a comma-delimited list of systems to use for remote encoding using
@@ -197,7 +199,7 @@
abcde requires the following backend tools to work:
.TP
.B *
-An Ogg or MP3 Encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc)
+An Ogg, FLAC or MP3 Encoder (oggenc, vorbize, flac, lame, gogo, bladeenc, l3enc, mp3enc)
.TP
.B *
An audio CD reading utility (cdparanoia, cdda2wav)
@@ -212,13 +214,22 @@
(for MP3s) id3, an id3 tagging program.
.TP
.B *
+(for Oggs) vorbiscomment, an Ogg Vorbis commenting program.
+.TP
+.B *
+(for FLACs) metaflac, a FLAC metadata editing program.
+.TP
+.B *
(optional) distmp3, a client/server for distributed mp3 encoding.
.SH "SEE ALSO"
.BR cdparanoia (1),
.BR cdda2wav (1),
.BR oggenc (1),
.BR vorbize (1),
+.BR flac (1),
.BR id3 (1),
+.BR vorbiscomment (1),
+.BR metaflac (1),
.BR wget (1),
.BR cd-discid (1),
.BR distmp3 (1),
diff -ruN abcde-2.0.3.debian/abcde.conf abcde-2.0.3/abcde.conf
--- abcde-2.0.3.debian/abcde.conf 2002-01-21 13:35:31.000000000 +1100
+++ abcde-2.0.3/abcde.conf 2002-11-25 18:29:53.000000000 +1100
@@ -47,8 +47,10 @@
#MP3ENC=mp3enc
#VORBIZE=vorbize
#OGGENC=oggenc
+#FLAC=flac
#ID3=id3
#ID3V2=id3v2
+#METAFLAC=metaflac
#CDPARANOIA=cdparanoia
#CDDA2WAV=cdda2wav
#WGET=wget
@@ -67,8 +69,10 @@
#MP3ENCOPTS=
#VORBIZEOPTS=
#OGGENCOPTS=
+#FLACOPTS=
#ID3OPTS=
#ID3V2OPTS=
+#METAFLACOPTS=
#CDPARANOIAOPTS=
#CDDA2WAVOPTS=
#WGETOPTS=
@@ -106,7 +110,7 @@
# you can specify that here
#WAVOUTPUTDIR=`pwd`
-# OUTPUTTYPE can be either "ogg" or "mp3".
+# OUTPUTTYPE can be either "ogg", "mp3" or "flac".
#OUTPUTTYPE=ogg
# Output filename format - change this to reflect your inner desire to
Binary files abcde-2.0.3.debian/.abcde.swp and abcde-2.0.3/.abcde.swp differ
diff -ruN abcde-2.0.3.debian/debian/changelog abcde-2.0.3/debian/changelog
--- abcde-2.0.3.debian/debian/changelog 2002-11-25 11:40:57.000000000 +1100
+++ abcde-2.0.3/debian/changelog 2002-11-25 12:45:39.000000000 +1100
@@ -1,3 +1,9 @@
+abcde (2.0.3-1.flac) unstable; urgency=low
+
+ * Add FLAC support (reworked patch from <ben.konrath@utoronto.ca> )
+
+ -- Ben Finney <bignose@zip.com.au> Mon, 25 Nov 2002 12:30:00 +1100
+
abcde (2.0.3-1) unstable; urgency=low
* The Fixed-Yet?-How-About-Now?-What-About-Now?-Now? Release
diff -ruN abcde-2.0.3.debian/debian/control abcde-2.0.3/debian/control
--- abcde-2.0.3.debian/debian/control 2002-11-25 11:40:57.000000000 +1100
+++ abcde-2.0.3/debian/control 2002-11-25 17:37:16.000000000 +1100
@@ -11,9 +11,9 @@
Conflicts: cdgrab
Replaces: cdgrab
Provides: cdgrab
-Suggests: eject, distmp3, id3 (>= 0.12), id3v2
+Suggests: flac (>= 1.0.4), eject, distmp3, id3 (>= 0.12), id3v2
Description: A Better CD Encoder
A frontend program to cdparanoia, wget, cd-discid, id3, and your favorite
- Ogg or MP3 encoder (defaults to oggenc). Grabs an entire CD and converts
- each track to Ogg or MP3, then comments or ID3-tags each file, with one
- command.
+ Ogg, FLAC or MP3 encoder (defaults to oggenc). Grabs an entire CD and
+ converts each track to Ogg, FLAC or MP3, then comments or ID3-tags each
+ file, with one command.
diff -ruN abcde-2.0.3.debian/README abcde-2.0.3/README
--- abcde-2.0.3.debian/README 2001-08-16 08:23:59.000000000 +1000
+++ abcde-2.0.3/README 2002-11-25 12:27:08.000000000 +1100
@@ -1,16 +1,17 @@
ABCDE
=====
abcde is a frontend command-line utility (actually, a shell script) that
-grabs tracks off a CD, encodes them to ogg or mp3 format, and tags them,
-all in one go.
+grabs tracks off a CD, encodes them to ogg, flac or mp3 format, and tags
+them, all in one go.
-Your finished Oggs/MP3's are, by default, stored in a subdirectory of the
-current directory (named after the artist) with a filename based on the
-track title. Spaces are replaced by underscores, and apostrophes and
-control codes are filtered out. Colons are replaced with an underscore and a
-hyphen. The end result usually looks like: Our_Lady_Peace/Supermans_Dead.mp3
-This filename munging is customizable - edit the mungefilename function in
-your abcde.conf to change it.
+Your finished Oggs/FLACs/MP3's are, by default, stored in a subdirectory
+of the current directory (named after the artist) with a filename based
+on the track title. Spaces are replaced by underscores, and apostrophes
+and control codes are filtered out. Colons are replaced with an
+underscore and a hyphen. The end result usually looks like:
+"Our_Lady_Peace/Supermans_Dead.mp3". This filename munging is
+customizable - edit the mungefilename function in your abcde.conf to
+change it.
Need to go through an HTTP proxy for CDDB access? No problem, just export
your http_proxy variable first so wget can see it.
@@ -43,7 +44,8 @@
* -e doesn't exist anymore, abcde now presents you with all of the cddb data
and asks you if you want to edit it. If you don't want to be asked,
use -N or INTERACTIVE=n
-* The output type defaults to Ogg Vorbis. Specify -o mp3 or OUTPUTTYPE=mp3
+* The output type defaults to Ogg Vorbis. Specify -o flac or OUTPUTTYPE=flac
+ if you want non-lossy encoding with flac. Specify -o mp3 or OUTPUTTYPE=mp3
if you still want to output mp3's.
* -l 2 is now just -l, LOWDISK=2 should now be LOWDISK=y
* -V and -v are gone, abcde will now prompt you if you'd like to use Various
@@ -59,7 +61,10 @@
abcde requires the following backend tools to work:
-* An Ogg encoder (oggenc, the default, or vorbize) or:
+* An Ogg encoder (oggenc, the default, or vorbize)
+ You can get oggenc at: http://www.xiph.org/ogg/vorbis/download/
+* A flac encoder (flac)
+ You can get flac at: http://flac.sourceforge.net/
* An MP3 encoder (lame, gogo, bladeenc, l3enc, etc). Any MP3 encoder that
takes two filenames on the command line, one for input, one for output,
will work.
To unsubscribe: echo unsubscribe | mail abcde-request@whimsica.lly.org