Support added for ripping with the GNU Compact Disc
Input and Control library (libcdio) as requested by
both gentoo and NixOS. The utility used is cd-paranoia
and can best be called from a conf file as follows:
CDROMREADERSYNTAX=libcdio
CD_PARANOIA=cd-paranoia
CDPARANOIAOPTS="--never-skip=40 --verbose"
with the CD_PARANOIA variable giving the correct path
to cd-paranoia. I believe that cd-paranoia uses the same
options as cdparanoia but if I am proven incorrect this
will need to be rectified...
if [ -z "$TRACKQUEUE" ]; then
if [ ! "$STRIPDATATRACKS" = "n" ]; then
case "$CDROMREADERSYNTAX" in
if [ -z "$TRACKQUEUE" ]; then
if [ ! "$STRIPDATATRACKS" = "n" ]; then
case "$CDROMREADERSYNTAX" in
+ cdparanoia|libcdio|debug)
if [ "$WEHAVEACD" = "y" ]; then
vecho "Querying the CD for audio tracks..."
CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )"
if [ "$WEHAVEACD" = "y" ]; then
vecho "Querying the CD for audio tracks..."
CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )"
UTRACKNUM=$FIRSTTRACK
case "$CDROMREADERSYNTAX" in
flac) READTRACKNUMS="$FIRSTTRACK.1-$(($LASTTRACK + 1)).0" ;;
UTRACKNUM=$FIRSTTRACK
case "$CDROMREADERSYNTAX" in
flac) READTRACKNUMS="$FIRSTTRACK.1-$(($LASTTRACK + 1)).0" ;;
#XX FIXME XX
# Add a variable to check if tracks are provided in command line and if not, use "0-" to rip the tracks
READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;;
#XX FIXME XX
# Add a variable to check if tracks are provided in command line and if not, use "0-" to rip the tracks
READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;;
# Avoid problems with math expressions by unpadding the given UTRACKNUM
STRIPTRACKNUM=$(expr $UTRACKNUM + 0)
nice $READNICE $FLAC -d -f --cue=${READTRACKNUMS:-$STRIPTRACKNUM.1-$(($STRIPTRACKNUM + 1)).0} "$FILEARG" "$CDROM" ;;
# Avoid problems with math expressions by unpadding the given UTRACKNUM
STRIPTRACKNUM=$(expr $UTRACKNUM + 0)
nice $READNICE $FLAC -d -f --cue=${READTRACKNUMS:-$STRIPTRACKNUM.1-$(($STRIPTRACKNUM + 1)).0} "$FILEARG" "$CDROM" ;;
nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
cdda2wav | icedax)
if [ "$OSFLAVOUR" = "OSX" ] ; then
nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
cdda2wav | icedax)
if [ "$OSFLAVOUR" = "OSX" ] ; then
NEROAACTAG=neroAacTag
CDPARANOIA=cdparanoia
NEROAACTAG=neroAacTag
CDPARANOIA=cdparanoia
CDDA2WAV=icedax
DAGRAB=dagrab
CDDAFS=cp
CDDA2WAV=icedax
DAGRAB=dagrab
CDDAFS=cp
DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac:opus
# List of preferred cdromreaders - by default, run whichever we have in the path
DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac:opus
# List of preferred cdromreaders - by default, run whichever we have in the path
-DEFAULT_CDROMREADERS="cdparanoia icedax cdda2wav pird"
+DEFAULT_CDROMREADERS="cdparanoia icedax cdda2wav libcdio pird"
# Assume fetch if under FreeBSD. curl is used for Mac OS X. wget is used for
# Linux/OpenBSD. ftp is user for NetBSD.
# Assume fetch if under FreeBSD. curl is used for Mac OS X. wget is used for
# Linux/OpenBSD. ftp is user for NetBSD.
# FIXME # remove check as soon as we find out about the other readers
case "$CDROMREADERSYNTAX" in
flac) ;;
# FIXME # remove check as soon as we find out about the other readers
case "$CDROMREADERSYNTAX" in
flac) ;;
+ cdparanoia | libcdio) ;;
cdda2wav | icedax) ;;
pird) ;;
*) log error "$CDROMREADERSYNTAX does not support ONETRACK mode"
cdda2wav | icedax) ;;
pird) ;;
*) log error "$CDROMREADERSYNTAX does not support ONETRACK mode"
CDROMREADER="$CDPARANOIA"
CDROMREADEROPTS="$CDPARANOIAOPTS"
;;
CDROMREADER="$CDPARANOIA"
CDROMREADEROPTS="$CDPARANOIAOPTS"
;;
+ libcdio)
+ # GNU's libcdio package will use cd-paranoia but I believe will be happy with
+ # the standard cdparanoia options. If I am wrong this will need to be fixed :).
+ CDROMREADER="$CD_PARANOIA"
+ CDROMREADEROPTS="$CDPARANOIAOPTS"
+ ;;
cdda2wav | icedax)
CDROMREADER="$CDDA2WAV"
CDROMREADEROPTS="$CDDA2WAVOPTS"
cdda2wav | icedax)
CDROMREADER="$CDDA2WAV"
CDROMREADEROPTS="$CDDA2WAVOPTS"
if [ X"$CDSPEEDVALUE" != "X" ] && [ "$DOREAD" = "y" ]; then
case "$CDROMREADERSYNTAX" in
if [ X"$CDSPEEDVALUE" != "X" ] && [ "$DOREAD" = "y" ]; then
case "$CDROMREADERSYNTAX" in
- cdparanoia|debug) CDROMREADEROPTS="$CDPARANOIAOPTS -S $CDSPEEDVALUE" ;;
+ cdparanoia|libcdio|debug) CDROMREADEROPTS="$CDPARANOIAOPTS -S $CDSPEEDVALUE" ;;
pird) CDROMREADEROPTS="$PIRDOPTS -s $CDSPEEDVALUE" ;;
### FIXME ### translate "cue2discid" from python to bash
flac) NEEDMETAFLAC=y ; NEEDCUE2DISCID=y ; CDSPEEDVALUE="" ;;
pird) CDROMREADEROPTS="$PIRDOPTS -s $CDSPEEDVALUE" ;;
### FIXME ### translate "cue2discid" from python to bash
flac) NEEDMETAFLAC=y ; NEEDCUE2DISCID=y ; CDSPEEDVALUE="" ;;
# Rippers with USEPIPE support
PIPERIPPER_cdparanoia="-"
# Rippers with USEPIPE support
PIPERIPPER_cdparanoia="-"
# Note that by default in abcde cdda2wav redirects to icedax.
PIPERIPPER_cdda2wav="-"
PIPERIPPER_debug="-"
# Note that by default in abcde cdda2wav redirects to icedax.
PIPERIPPER_cdda2wav="-"
PIPERIPPER_debug="-"
if [ X"$CDSPEEDVALUE" != "X" ]; then
case "$CDROMREADERSYNTAX" in
if [ X"$CDSPEEDVALUE" != "X" ]; then
case "$CDROMREADERSYNTAX" in
+ cdparanoia|libcdio|debug) ;;
pird) ;;
flac) ;;
*) do_cdspeed ;;
pird) ;;
flac) ;;
*) do_cdspeed ;;
#NORMALIZERSYNTAX=default
# CD reader program to use - currently recognized options are 'cdparanoia',
#NORMALIZERSYNTAX=default
# CD reader program to use - currently recognized options are 'cdparanoia',
-# 'icedax', 'cdda2wav', 'dagrab', 'pird', 'cddafs' (Mac OS X only) and 'flac'.
+# 'libcdio' (cd-paranoia),'icedax', 'cdda2wav', 'dagrab', 'pird',
+# 'cddafs' (Mac OS X only) and 'flac'.
#CDROMREADERSYNTAX=cdparanoia
# CUE reader syntax for the CUE reader program to use.
#CDROMREADERSYNTAX=cdparanoia
# CUE reader syntax for the CUE reader program to use.
#ID3V2=id3v2
#EYED3=eyeD3
#CDPARANOIA=cdparanoia
#ID3V2=id3v2
#EYED3=eyeD3
#CDPARANOIA=cdparanoia
+#CD_PARANOIA=cd-paranoia
#CDDA2WAV=icedax
#PIRD=pird
#CDDAFS=cp
#CDDA2WAV=icedax
#PIRD=pird
#CDDAFS=cp
#EYED3OPTS="--set-encoding=utf16-LE"
# Other options:
#EYED3OPTS="--set-encoding=utf16-LE"
# Other options:
+# The variable CDPARANOIOPTS is also used by GNU's cd-paranoia,
+# so use this when setting CDROMREADERSYNTX=libcdio.
#CDPARANOIAOPTS=
#CDDA2WAVOPTS=
#PIRDOPTS="-p"
#CDPARANOIAOPTS=
#CDDA2WAVOPTS=
#PIRDOPTS="-p"
+ * Support added for ripping with the GNU Compact Disc
+ Input and Control library (libcdio) as requested by
+ both gentoo and NixOS. The utility used is cd-paranoia
+ and can best be called from a conf file as follows:
+
+ CDROMREADERSYNTAX=libcdio
+ CD_PARANOIA=cd-paranoia
+ CDPARANOIAOPTS="--never-skip=40 --verbose"
+
+ with the CD_PARANOIA variable giving the correct path
+ to cd-paranoia. I believe that cd-paranoia uses the same
+ options as cdparanoia but if I am proven incorrect this
+ will need to be rectified...
* Fix for encoding with bladeenc and usepipes.
* Fix for broken ripping with dagrab. Closes Issue 140.
* Fix for diskutil selecting wrong disk on OS X. Thanks
* Fix for encoding with bladeenc and usepipes.
* Fix for broken ripping with dagrab. Closes Issue 140.
* Fix for diskutil selecting wrong disk on OS X. Thanks