From: data Date: Sun, 3 Oct 2004 22:37:03 +0000 (+0000) Subject: abcde.conf X-Git-Url: https://git.hcoop.net/clinton/abcde.git/commitdiff_plain/b7f1cc84a5f43b84d9814c7394b67b54c9d2fd2c?ds=sidebyside abcde.conf - EXTRAVERBOSE added debian/changelog - New modifications added debian/copyright - Removed Robert from Upstream, and added as original author. TODO - CD1...CDn resolved FAQ,README - Super rework. All technical questions/problems have been moved to the FAQ abcde.1 - Some small changes about Robert and me abcde - Deleted the -f, -s flags - added -t, -T for arbitrary track numbering - moved the action resolver out of discid - Eliminating -f in favour of -n -L, which cleans out some code - Functions moved to the function part of the script - plenty of if;then changed with []&& - plenty of echo $ACTIONS changed with []&& since we have the actions already defined - POSIX compatibility added in one FIXME - the CDPARANOIA check for data tracks COULD NOT BE WORKING. i have to find when i fscked it up git-svn-id: http://abcde.googlecode.com/svn/trunk@23 a0fa61bc-5347-0410-a1a9-7f54aa4e1825 --- diff --git a/FAQ b/FAQ index 0624322..7e934bc 100644 --- a/FAQ +++ b/FAQ @@ -1,3 +1,11 @@ +0. INTRODUCTION + ============ + +Q. Who created abcde? Who develops it nowadays? +A. It was originally created by Robert Woodcook. He decided to give up + maintaining it at some point in 2002 and Jesus Climent took over. Contact + jesus.climent@hispalinux.es if you have a problem or a suggestion. + 1. INSTALLATION ============ @@ -12,42 +20,78 @@ A. To get abcde you can use a pre-packaged version, available for Debian, abcde needs cd-discid. Grab it from: http://www.hispalinux.es/~data/files/cd-discid/ + + Read the README files for a complete list of requirements. 2. EXECUTION ========= -3. FORMATS - ======= - -4. MISC PROBLEMS - ==== ======== - -Q. What happened with normalize? -A. Normalize has changed its name under Debian, which is the GNU/Linux - distribution for developing abcde (well, is The GNU/Linux Distribution - i only use, at the moment). Now it is called normalize-audio. - If you are using some other flavour of OS, you need to change the name - of the executable in your abcde.conf file. - -Q. I am using MacOSX and I am having problems to use abcde. -A. Well, I have a Mac, but I use linux on it. I have not been able to find - a way to make it work there, since I do not have the development tools - installed. I have placed a basic support, but some user reports are just - complaining about abcde not encoding the ripped tracks, as if - cdda2wav/cdparanoia/cddafs would never end reading them. If you have such - a system and experience problems, please, report them, and I will try to - work them out with your help. +Q. Low on disk space? +A. abcde has different algorithms to schedule ripping and encoding - to + optimize for disk conservation, use -l. You can also define + WAVOUTPUTDIR=/some/other/path to your /etc/abcde.conf or ~/.abcde.conf to + store the WAV files on another NFS shared fisk, for example. + +Q. How can i make abcde encode faster? My CD reader is way faster than the pace + it can encode my tracks. +A. abcde can take advantage of SMP systems, just like make. Try 'abcde -j 2' - + it'll run two encoder jobs while it rips the next track. + You can also make use of systems which are networked, with the help of + distmp3. For example, MachineA has a better CPU power and MachineB has a CD + drive. Run distmp3host (included in distmp3) on Machine A, and then run + abcde -r MachineA from MachineB (where "MachineA" is a dns name or IP + address). Use this in combination with '-j 0' to shift all encoding off the + local machine. + +Having trouble getting cdparanoia to read from your drive as a user? Add +yourself to the cdrom group, change the permissions on your cdrom device to 660, +and if you have a SCSI cdrom drive, check the permissions on +/dev/sg* as well. Q. I would like to give the trackname and the artist_name directly to the encoder (in my case oggenc), but found no documentation. A. That is not possible, since abcde gets the information from CDDB database. - You can create a template and fill it with the option "-n". + You can create a template and fill it with the option "-n". Also, you can + get the CDDB entry and edit it yourself. abcde has also an option to drop + back to a template if you like none of the CDDB entries, selecting 0 from + the CDDB options. -Q. What formats can I encode my music to? -A. As for version 2.2, abcde includes support for MP3, Ogg/Vorbis, - Ogg/Speex, Flac and MPP/MP+(Musepack). Support for AAC will be added once - an FLOSS encoder/decoder is working. +Q. (Thanks to Amaya) Where are those options and settings defined? Why dont + you include a proper abcde.conf as an example? +A. I do. It should be installed under /etc/abcde.conf and contains more or + less all the defaults abcde uses. You can use $(HOME)/.abcde.conf to + override those defaults. More information can be obtained from the man page + which can be consulted using "man abcde". + +Q. I keep on getting files with ".ogg.ogg" extension. What am I doing wrong? +A. The code for multiple-output adds automatically the extension of the + different outputs you select with the "-o" extension (or with OUTPUTTYPE + variable). Erase the ".${OUTPUTTYPE}" part from the OUTPUTFORMAT variable + in /etc/abcde.conf or ~/.abcde.conf + +Q. I have modified some of the options, and now CDDB has stopped working. +A. Check that you have modified everything in the right way. For instance, if + you modify the HTTPGET program you might want to set some options of your + own. If you use the predefined ones (wget, curl and fetch) abcde will try + to use some defaults. Keep in mind that the output should go to the output + as standard output, to be saved in a file for later use. + + If abcde seems to be ignoring your configuration options or not running + commands such as the encoder, you may have misquoted something. Config + options such as the following do not work: + + LAMEOPTS=-h -k + + Try this instead: + + LAMEOPTS='-h -k' + +Q. How can I separate the different output files I get using multiple-output + support? +A. Use the OUTPUT variable in PLAYLISTFORMAT and OUTPUTFORMAT. It holds the + different output file types you passed to abcde (i.e., ogg, mp3, flac) + during playlist creation and file/directory creation. Q. I have a CD with a data track, and abcde complaints it cannot read/encode it. @@ -59,17 +103,65 @@ A. It is not easy to find a data track on a CD. Right now, I can only think Version 2.2 includes some checkings with cdparanoia, to try to get this right. -Q. How can I separate the different output files I get using multiple-output - support? -A. Use the OUTPUT variable in PLAYLISTFORMAT and OUTPUTFORMAT. It holds the - different output file types you passed to abcde (i.e., ogg, mp3, flac) - during playlist creation and file/directory creation. +Q. I am requested to have "eject" when setting the speed although I do not use + it for anything. +A. If you do not use cdparanoia, eject is used for setting the speed of the + cdrom drive. You can substitute it for "setcd" with "-x" as the argument, + but you have to install it manually (setcd is, at least, available in + Debian). + Another way to get the same results is using the pre_read function, defined + in your /etc/abcde.conf file. -Q. I keep on getting files with ".ogg.ogg" extension. What am I doing wrong? -A. The code for multiple-output adds automatically the extension of the - different outputs you select with the "-o" extension (or with OUTPUTTYPE - variable). Erase the ".${OUTPUTTYPE}" part from the OUTPUTFORMAT variable - in /etc/abcde.conf or ~/.abcde.conf +Q. I have a CD set with 1+ discs, and want to have them in the same directory, + sorted properly. What can abcde do for me? +A. Set abcde to rip the first CD and give it the option "-t 101". Use a generic + name for the CD, and reuse it with the rest of the CDs, editing the CDDB + entries. Use "-t 201" for the second CD and so on. Use "-w " to + add a comment about the CD you are ripping (-w "disc #"). Alternatively you + can use only the "-t ###" option and then move all the files to the same + directory. If you want the tagged track number to be set to the modified + number you should use "-T ###". + +Q. I have a live concert. I want to encode it in a single file. How do i do it? +A. Use "-1" and it will be encoded in a single file. + +3. CDDB + ==== + +Q. I need to go through an HTTP proxy for CDDB access. +A. No problem, just export your http_proxy variable first so wget/fetch/curl + can see it. + +Q. I already store CDDB entries in my hard disc. Can I make use of them? +A. Piece of cake. Just edit CDDBLOCALDIR to point to the repository and give + abcde the "-L" flag to make use of it. + +Q. Fine, now it uses local CDDB, but I have no network connection. How can I + disable CDDB checks? +A. Use the "-L -n" combination. It will try to use local CDDB entries, and if + nothing can be found, it will use a template. You will be also given the + choice to edit such template. + +Q. How can I use some other CDDB information provider? +A. abcde now uses FreeDB by default. To use a different FreeDB mirror or + another CDDB service, change the CDDBURL option in your abcde.conf. + + +3. FORMATS + ======= + +Q. What formats can I encode my music to? +A. As for version 2.2, abcde includes support for MP3, Ogg/Vorbis, + Ogg/Speex, Flac and MPP/MP+(Musepack). Support for AAC will be added once + an FLOSS encoder/decoder is working. + +Q. I want the new *put the newest and coolest codec there* format to be + supported by abcde. Abcde is so cool but i want to encode also to this + new format... +A. Patches are welcome! ;) + No, seriously, if the format is usable, available for Linux and open + source/free software, it should be fairly easy to integrate. Support for + AAC (m4p) should be the next one to be introduced. Q. I use Debian/RedHat/(put your Unix flavour here) and MP3 encoding is not working. What am I doing wrong? @@ -102,60 +194,35 @@ A. Since MP3 is considered non-free (you get it for free, but hardware players Others : Please, help me here. -Q. I have modified some of the options, and now CDDB has stopped working. -A. Check that you have modified everything in the right way. For instance, if - you modify the HTTPGET program you might want to set some options of your - own. If you use the predefined ones (wget, curl and fetch) abcde will try - to use some defaults. Keep in mind that the output should go to the output - as standard output, to be saved in a file for later use. +Q. Huh! Why is MPPENCODER (with MPP) and .mpc the extension? +A. Dunno. You must ask the guys who created and defined the format. The + standard is MPEGplus (MPP/MP+) but the files use .mpc extension. - If abcde seems to be ignoring your configuration options or not running commands - such as the encoder, you may have misquoted something. Config options such as - the following do not work: - - LAMEOPTS=-h -k + +4. MISC PROBLEMS + ==== ======== - Try this instead: +Q. What happened with normalize? +A. Normalize has changed its name under Debian, which is the GNU/Linux + distribution for developing abcde (well, is The GNU/Linux Distribution + i only use, at the moment). Now it is called normalize-audio. + If you are using some other flavour of OS, you need to change the name + of the executable in your abcde.conf file. - LAMEOPTS='-h -k' +Q. I am using MacOSX and I am having problems to use abcde. +A. Well, I have a Mac, but I use linux on it. I have not been able to find + a way to make it work there, since I do not have the development tools + installed. I have placed a basic support, but some user reports are just + complaining about abcde not encoding the ripped tracks, as if + cdda2wav/cdparanoia/cddafs would never end reading them. If you have such + a system and experience problems, please, report them, and I will try to + work them out with your help. Q. My hardware player (put it here) does not recognize the playlists created with abcde. What I am doing wrong? A. Try using "-m" when creating the playlists, or setting DOSPLAYLIST as an option in the config file. -Q. I am requested to have eject when setting the speed although I do not use - for anything. -A. If you do not use cdparanoia, eject is used for setting the speed of the - cdrom drive. You can substitute it for "setcd" with "-x" as the argument, - but you have to install it manually (setcd is, at least, available in - Debian). - Another way to get the same results is using the pre_read function, defined - in your /etc/abcde.conf file. - -Q. Huh! Why is MPPENCODER (with MPP) and .mpc the extension? -A. Dunno. You must ask the guys who created and defined the format. The - standard is MPEGplus (MPP/MP+) but the files use .mpc extension. - -Q. I want the new *put the newest and coolest codec there* format to be - supported by abcde. Abcde is so cool but i want to encode also to this - new format... -A. Patches are welcome! ;) - No, seriously, if the format is usable, available for Linux and open - source/free software, it should be fairly easy to integrate. Support for - AAC (m4p) should be the next one to be introduced. - -Q. (Thanks to Amaya) Where are those options and settings defined? Why dont - you include a proper abcde.conf as an example? -A. I do. It should be installed under /etc/abcde.conf and contains more or - less all the defaults abcde uses. You can use $(HOME)/.abcde.conf to - override those defaults. More information can be obtained from the man page - which can be consulted using "man abcde". - -Q. I am running out of disc space. -A. You have to options. Use -l or define WAVOUTPUTDIR=/some/other/path to your - /etc/abcde.conf or ~/.abcde.conf. - OBSOLETE -------- Q. I set KEEPWAVS to "y" but abcde insists on erasing my directory, along diff --git a/README b/README index adf338b..813a79d 100644 --- a/README +++ b/README @@ -13,31 +13,9 @@ end result usually looks like: Our_Lady_Peace/01.Supermans_Dead.ogg 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/fetch/curl can see it. - -You already store CDDB entries for your CD collection on your hard disk? Piece -of cake. Just edit CDDBLOCALDIR to point to the repository and give abcde the -"-L" flag to make use of it. - -Low on disk space? abcde has different algorithms to schedule ripping and -encoding - to optimize for disk conservation, use -l. - -abcde can also take advantage of SMP systems, just like make. Try 'abcde -j 2' - -it'll run two encoder jobs while it rips the next track. - -abcde now uses FreeDB by default. To use a different FreeDB mirror or another -CDDB service, change the CDDBURL option in your abcde.conf. - -Frustrated that you can't use the CPU power on Machine A sitting right next to -Machine B with the fast cdrom drive? Now you don't have to be - Run distmp3host -(included in distmp3) on Machine A, and then run abcde -r MachineA from Machine -B (where "MachineA" is a dns name or IP address). Use this in combination with -'-j 0' to shift all encoding off the local machine. - -You do not have internet connection, or just feel with free time to write down -all the song names and artists instead of using CDDB? Use -n and edit the -template. +Many of the questions related of problems executing abcde have been moved to the +FAQ, which should be distributed along with this package. Reffer to that file +for help. To make abcde 2.x work more like 1.x, put these options in your abcde.conf: @@ -68,8 +46,6 @@ Changes in 2.2-pre2: system. * New mungegenre function to switch off (or modify) the default behaviour of transforming uppercase characters to lowercase. -* No network but you have been using abcde with local CDDB storage before? - Use -f and it will try the local CDDB and fallback to an empty template. Changes in 2.2-pre1: @@ -203,13 +179,6 @@ abcde requires the following backend tools to work: * (optional) distmp3, a client/server for distributed mp3 encoding. You can get distmp3 at http://wlug.westbo.se/medlprog/medlprog.html -Potential problems: - -Having trouble getting cdparanoia to read from your drive as a user? Add -yourself to the cdrom group, change the permissions on your cdrom device to 660, -and if you have a SCSI cdrom drive, check the permissions on -/dev/sg* as well. - Abcde's new mailing list is abcde@listas.hispalinux.es. So far has not been actively used. The posts from non-subscribers are moderated to prevent spam. @@ -218,11 +187,9 @@ Archives of the old list are publically available at: http://lly.org/~rcw/abcde/list/current/threads.html Abcde's current page is at http://www.hispalinux.es/~data/abcde.php -Abcde's new homepage will be at http://abcde.hispalinux.es/. Abcde's old homepage is at http://lly.org/~rcw/abcde/page/. -- Jesus Climent -abcde was originally created by Robert Woodcock , but is -currently maintained by Jesus Climent +abcde was originally created by Robert Woodcock diff --git a/TODO b/TODO index 0a5783a..401e24f 100644 --- a/TODO +++ b/TODO @@ -6,8 +6,6 @@ TODO: * read the TOC and CDTEXT files and store them * read the complete CD to a single file, storing TOC seems a good idea to recreate the index entries if we decide to burn the cd. -* Make concatenating CD1...Cdn sets into one album possible: Maybe a "start - with number for files" flag? * read_and_encode function that uses named pipes for further ripping/encoding parallelization where possible diff --git a/abcde b/abcde index c874b1f..44875bd 100755 --- a/abcde +++ b/abcde @@ -26,7 +26,6 @@ echo "-c Specify a configuration file (overrides system and user config files echo "-C Specify discid to resume from (only needed if you no longer have the cd)" echo "-d Specify CDROM device to grab" echo "-D Debugging mode (equivalent to sh -x abcde)" -echo "-f Force the use of a local CDDB entry. Use an empty template if not found" echo "-h This help information" #echo "-i Tag files while encoding, when possible (local only) -NWY-" echo "-j Number of encoder processes to run at once" @@ -38,8 +37,9 @@ echo "-N Noninteractive. Never prompt for anything" echo "-m Modify playlist to include CRLF endings, to comply with some players" echo "-o Output file type(s) (ogg,mp3,flac,spx,mpc). Defaults to ogg" echo "-p Pad track numbers with 0's (if less than 10 tracks)" +#echo "-P Use UNIX pipes to read+encode without wav files" echo "-r [host1,host2...] Also encode on these remote hosts" -echo "-R Add replaygain values to the tag info (ogg,flac)" +echo "-R Add replaygain values to the tag info (only for ogg,flac)" echo "-s Start the track numbering at a given number [DEPRECATED: use -t]" echo "-S Set the CD speed" #echo "-t File types to preprocess (wav)" @@ -49,7 +49,7 @@ echo "-T Start the track numbering at a given number, modifying tag numbering echo "-v Show version number and exit" echo "-V Be a bit more verbose about what is happening behind the scenes" echo "-x Eject CD after all tracks are read" -echo "-w Add a comment to the CD tracks" +echo "-w [comment] Add a comment to the CD tracks" echo "Tracks is a space-delimited list of tracks to grab." echo "Ranges specified with hyphens are allowed." } @@ -412,7 +412,7 @@ do_encode () for OUTPUT in $(echo $OUTPUTTYPE | tr , \ ) do OUT="$ABCDETEMPDIR/track$1.$OUTPUT" - run_command '' echo "Encoding track $1 of $TRACKS: $TRACKNAME..." + echo "Encoding track $1 of $TRACKS: $TRACKNAME..." >&2 case "$OUTPUT" in mp3) case "$2" in @@ -965,35 +965,6 @@ do_discid () # Create the discid file echo "$TRACKINFO" > "$ABCDETEMPDIR/discid" - - # Determine what actions are to be done from $ACTIONS and set the - # following environment variables for them: - DOCDDB=n - DOREAD=n - DONORMALIZE=n - DOPREPROCESS=n - DOENCODE=n - DOPOSTPROCESS=n - DOTAG=n - DOMOVE=n - DOPLAYLIST=n - DOCLEAN=n - - for ACTION in $(echo $ACTIONS | tr , \ ) - do - case $ACTION in - cddb) DOCDDB=y;; - read) DOREAD=y;; - normalize) DONORMALIZE=y; DOREAD=y;; - preprocess) DOPREPROCESS=y; DOREAD=y;; - encode) DOENCODE=y; DOREAD=y;; - postprocess) DOPREPROCESS=y; DOENCODE=y; DOREAD=y;; - tag) DOTAG=y; DOREAD=y; DOENCODE=y; DOCDDB=y;; - move) DOMOVE=y; DOTAG=y; DOREAD=y; DOENCODE=y; DOCDDB=y;; - playlist) DOCDDB=y; DOPLAYLIST=y;; - clean) DOCLEAN=y;; - esac - done } # do_cddbparse @@ -1053,12 +1024,6 @@ do_localcddb () #echo "Not using local copy of CDDB data" CDDBLOCALSUCCESS="n" fi - elif [ "$FORCECDDBUSELOCAL" = "y" ]; then - $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" - echo 998 > "$ABCDETEMPDIR/cddbquery" # Assuming 998 isn't used by CDDB - echo cddb-readcomplete >> "$ABCDETEMPDIR/status" - do_cddbparse "${CDDBLOCALFILE}" > "$ABCDETEMPDIR/cddbchoices" - echo cddb-choice=0 >> "$ABCDETEMPDIR/status" CDDBLOCALSUCCESS="y" else CDDBLOCALSUCCESS="n" @@ -1676,6 +1641,28 @@ if [ x"$EXTRAVERBOSE" != "x" ]; then fi } +# User-redefinable functions +# Custom filename munging: +mungefilename () +{ + echo "$@" | sed s,:,\ -,g | tr \ /\* __+ | tr -d \'\"\?\[:cntrl:\] +} + +# Custom genre munging: +mungegenre () +{ + echo $CDGENRE | tr "[:upper:]" "[:lower:]" +} + +# pre_read +# Empty pre_read function, to be defined in the configuration file. +pre_read () +{ +: +} + +# End of functions +# # Start of execution # Builtin defaults @@ -1795,26 +1782,6 @@ MAXPROCS=1 # List of actions to perform - by default, run to completion ACTIONS=cddb,read,encode,tag,move,clean -# User-redefinable functions -# Custom filename munging: -mungefilename () -{ - echo "$@" | sed s,:,\ -,g | tr \ /\* __+ | tr -d \'\"\?\[:cntrl:\] -} - -# Custom genre munging: -mungegenre () -{ - echo $CDGENRE | tr "[:upper:]" "[:lower:]" -} - -# pre_read -# Empty pre_read function, to be defined in the configuration file. -pre_read () -{ -: -} - # Asume fetch if under FreeBSD. curl is used for Mac OS X. wget is used for Linux/OpenBSD/NetBSD. # Let's use these checkings to determine the OS flavour, which will be used later if [ X$(uname) = "XFreeBSD" ] ; then @@ -1856,7 +1823,7 @@ if [ -r $HOME/.abcde.conf ]; then fi # By this time, we need some HTTPGETOPTS already defined. -# If the user has defined its own, we should not be empty. +# If the user has defined a non-default HTTPGET method, we should not be empty. if [ "$HTTPGETOPTS" = "" ] ; then case $HTTPGET in @@ -1886,7 +1853,7 @@ fi # Parse command line options #while getopts 1a:bc:C:d:Dhj:klLnNo:pr:S:t:T:vVx opt ; do -while getopts 1a:A:bc:C:d:Dfhj:klLnNo:pr:Rs:S:t:T:vVxw: opt ; do +while getopts 1a:A:bc:C:d:Dhj:klLnNo:pr:Rs:S:t:T:vVxw: opt ; do case "$opt" in 1) ONETRACK=y ;; a) ACTIONS="$OPTARG" ;; @@ -1897,17 +1864,18 @@ while getopts 1a:A:bc:C:d:Dfhj:klLnNo:pr:Rs:S:t:T:vVxw: opt ; do d) CDROM="$OPTARG" ;; D) set -x ;; h) usage; exit ;; - f) FORCECDDBUSELOCAL=y ;; +# f) FORCECDDBUSELOCAL=y ;; i) INLINETAG=y ;; j) MAXPROCS="$OPTARG" ;; k) KEEPWAVS=y ;; l) LOWDISK=y ;; - L) CDDBUSELOCAL="y" ;; - n) CDDBAVAIL="n" ;; - N) INTERACTIVE="n" ;; + L) CDDBUSELOCAL=y ;; + n) CDDBAVAIL=n ;; + N) INTERACTIVE=n ;; m) DOSPLAYLIST=y ;; o) OUTPUTTYPE="$OPTARG" ;; - p) PADTRACKS="y" ;; + p) PADTRACKS=y ;; + P) USEPIPES=y ;; r) REMOTEHOSTS="$OPTARG" ;; R) REPLAYGAIN=y ;; s) STARTTRACKNUMBER="$OPTARG" ;; @@ -1960,6 +1928,40 @@ else done fi +# List of valid actions: cddb,read,normalize,encode,tag,move,playlist,clean +# List of experimental actions: retag,transcode + +# Determine what actions are to be done from $ACTIONS and set the +# following environment variables for them: +DOCDDB=n +DOREAD=n +DONORMALIZE=n +DOPREPROCESS=n +DOENCODE=n +DOPOSTPROCESS=n +DOTAG=n +DOMOVE=n +DOPLAYLIST=n +DOCLEAN=n + +for ACTION in $(echo $ACTIONS | tr , \ ) +do + case $ACTION in + cddb) DOCDDB=y;; + read) DOREAD=y;; + normalize) DONORMALIZE=y; DOREAD=y;; +# preprocess) DOPREPROCESS=y; DOREAD=y;; + encode) DOENCODE=y; DOREAD=y;; +# postprocess) DOPREPROCESS=y; DOENCODE=y; DOREAD=y;; + tag) DOTAG=y; DOREAD=y; DOENCODE=y; DOCDDB=y;; + move) DOMOVE=y; DOTAG=y; DOREAD=y; DOENCODE=y; DOCDDB=y;; + playlist) DOCDDB=y; DOPLAYLIST=y;; + clean) DOCLEAN=y;; + esac +done + +# Sanity checks: + # At this point a CDROM has to be defined, so we check it exists. if [ "$CDROM" != "" ] ; then if [ "$CDROMREADERSYNTAX" = "cdda2wav" ] && [ "$NEEDCDROMID" = "y" ] ; then @@ -2014,14 +2016,14 @@ for OUTPUT in $(echo $OUTPUTTYPE | tr , \ ) do case $OUTPUT in ogg) [ "$OGGENCODERSYNTAX" = "default" ] && OGGENCODERSYNTAX=oggenc - echo $ACTIONS | grep tag > /dev/null 2>&1 && NEEDCOMMENTER=y - if [ "$REPLAYGAIN" = "y" ]; then NEEDVORBISGAIN=y; fi + [ "$DOTAG" = "y" ] && NEEDCOMMENTER=y + [ "$REPLAYGAIN" = "y" ] && NEEDVORBISGAIN=y ;; mp3) [ "$MP3ENCODERSYNTAX" = "default" ] && MP3ENCODERSYNTAX=lame - echo $ACTIONS | grep tag > /dev/null 2>&1 && NEEDTAGGER=y + [ "$DOTAG" = "y" ] && NEEDTAGGER=y ;; flac) [ "$FLACENCODERSYNTAX" = "default" ] && FLACENCODERSYNTAX=flac - echo $ACTIONS | grep tag > /dev/null 2>&1 && NEEDMETAFLAC=y + [ "$DOTAG" = "y" ] && NEEDMETAFLAC=y ;; spx) [ "$SPEEXENCODERSYNTAX" = "default" ] && SPEEXENCODERSYNTAX=speexenc ;; mpc) [ "$MPPENCODERSYNTAX" = "default" ] && MPPENCODERSYNTAX=mppenc ;; @@ -2111,9 +2113,9 @@ fi # Don't check for stuff if it's not needed if [ "$REMOTEHOSTS" ]; then NEEDDISTMP3=y; fi -if echo $ACTIONS | grep normalize > /dev/null 2>&1 ; then NEEDNORMALIZER=y; fi -if [ "$EJECTCD" = "y" ]; then NEEDEJECT=y; fi -if echo $ACTIONS | grep cddb > /dev/null 2>&1 ; then NEEDHTTPGET=y ; fi +[ "$DONORMALIZE" = "y" ] && NEEDNORMALIZER=y +[ "$EJECTCD" = "y" ] && NEEDEJECT=y +[ ! "$CDDBAVAIL" = "n" ] && [ "$DOCDDB" = "y" ] && NEEDHTTPGET=y if [ X"$CDSPEEDVALUE" != "X" ]; then case "$CDROMREADERSYNTAX" in @@ -2149,10 +2151,7 @@ HTTPGET="$HTTPGET $HTTPGETOPTS" # Here it used to say: # One thousand lines in, we can start doing stuff with things -# Well, right now we are at line 2139 ;) - -# List of valid actions: cddb,read,normalize,encode,tag,playlist,move,clean -# List of experimental actions: retag,transcode +# Well, right now we are at line 2157 ;) # Export needed things so they can be read in this subshell export CDDBTOOL ABCDETEMPDIR TRACKQUEUE LOWDISK EJECTCD EJECT EJECTOPTS @@ -2173,11 +2172,14 @@ if [ "$DOCDDB" = "y" ]; then if [ $CDDBUSELOCAL = "y" ]; then do_localcddb fi - ## FIXME ## ! is non-portable - if ! checkstatus cddb-choice > /dev/null && [ ! "$CDDBLOCALSUCCESS" = "y" ] ; then - do_cddbstat - do_cddbquery - do_cddbread + if checkstatus cddb-choice > /dev/null; then + : + else + if [ ! "$CDDBLOCALSUCCESS" = "y" ] ; then + do_cddbstat + do_cddbquery + do_cddbread + fi fi do_cddbedit @@ -2204,7 +2206,7 @@ if [ "$STRIPDATATRACKS" = "y" ] && [ ! "$ONETRACK" = "y" ]; then vecho "Querying the CD to obtain a list of valid audio tracks..." $CDROMREADER -Q > $ABCDETEMPDIR/cdparanoia-query 2>&1 # Obtain a list of valid audio tracks from the results of the query - CDTRACKQUEUE=$( cat $ABCDETEMODIR/cdparanoia- | egrep '^[[:space:]]+[[:digit:]]' | awk '{print $1}' | tr -d "." | tr '\n' ' ' ) + CDTRACKQUEUE=$( cat $ABCDETEMPDIR/cdparanoia-query | egrep '^[[:space:]]+[[:digit:]]' | awk '{print $1}' | tr -d "." | tr '\n' ' ' ) fi # Obtain the track padding value from the before-processing list and pad the CD list TRACKNUMPADDING=$( echo $TRACKQUEUE | awk '{print $1}' | tr -d " \n" | wc -c ) diff --git a/abcde.1 b/abcde.1 index d97a78f..418594a 100644 --- a/abcde.1 +++ b/abcde.1 @@ -392,5 +392,5 @@ An HTTP retrieval program: wget, fetch (FreeBSD) or curl (Mac OS X, among others .BR distmp3host (1), .BR curl(1) .SH AUTHORS -Robert Woodcock -Jesus Climent +Robert Woodcock , +Jesus Climent and contributions from many others. diff --git a/abcde.conf b/abcde.conf index d79de88..02a02d4 100644 --- a/abcde.conf +++ b/abcde.conf @@ -274,3 +274,7 @@ # on the local machine (requires distmp3 to be installed on local machine and # distmp3host to be installed and running on all remote machines - see README) #REMOTEHOSTS=foo,bar,baz,quux,qiix + +# Set to obtain some information about actions happening in the background +# Usefull if you have a slow network or CDDB servers seem irresponsive. +#EXTRAVERBOSE=n diff --git a/debian/changelog b/debian/changelog index 1215ccc..4be44c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,8 +12,6 @@ abcde (2.1pre2.2.0-1) experimental; urgency=low - On the MacOS X, I still do not know if abcde works correctly. If does not, please, drop a note. Or else. * DOSPLAYLIST also changes "/" with "\". - * Option "-s " added to modify the numbering from a starting point - (Closes: #95828). Geez! That is low bug number... * DATA tracks are now excluded from the ripping process using internally the cdparanoia "-Q" query option. If using another ripper, it does not work (at least there is no support for them in abcde) @@ -21,25 +19,27 @@ abcde (2.1pre2.2.0-1) experimental; urgency=low * New "0" choice for "None of the above" has been introduced. If selected, a template is created and the user encouraged to edit it (Closes: #147683). * New options for when the PLAYLIST already exists: erase, append or keep. - * Small bug fixes along the code: + * Bug fixes along the code: - abcde.1 corrections and additions - - abcde corrections + - abcde corrections and code reorganization. abcde now exits earlier if + some of the options are incompatible. Also the actions are set as + variables earlier, so we use less calls to external tools. - abcde.conf additions * The GENRE is munged now in its own mungegenre function, so that no more upper-to-lowercase is done (forced) except if the default is used. * Examples added to the tarball and /usr/share/doc/abcde/examples with two scripts to make abcde kind-of-a ripper daemon. - * Changed to experimental to have an stable 2.1.20 version in Sarge. + * Changed to experimental to have an stable 2.1.x version in Sarge. * Add CDDB information to Ogg/Vorbis and FLAC files (Closes: #265358). * Added INTERACTIVE option. Set it to "n" and there you go, without user interaction. * Changes normalize to normalize-audio (Closes: #267053) * Copes with wav files being erased by the ripping tool. - * New -f to force local CDDB or fallback to template (no network). * Small patch to support ()'s in the path under MacOSX. Thanks to Evan Jones for noticing and sending the patch. * Added -w for COMMENT seed. Used to give a comment to a given CD. - * Added -t as an alias for -s (deprecated in favor of -t) + * Option "-t " added to modify the numbering from a starting point + (Closes: #95828). Geez! That is low bug number... * Added -T to modify also the tag entries on the songs. Currently available for FLAC and Ogg/Vorbis. diff --git a/debian/copyright b/debian/copyright index 73d465d..f3ee503 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,10 +1,10 @@ -This package was debianized by Robert Woodcock on -Sun, 21 Feb 1999 18:50:34 -0800. +The software was originally developed by Robert Woodcock . +It was also debianized by Robert Woodcock on Sun, 21 Feb 1999 18:50:34 -0800. It is available at: http://www.hispalinux.es/~data/abcde.php -Upstream Authors: Robert Wookcock - Jesus Climent +Upstream Author: Jesus Climent +Original Author: Robert Woodcook Copyright: