On Tue, 20 Mar 2012 23:10:16 -0400, Steve Bertrand wrote: > I know this is a backwards request, as I haven't had to go from mp3 to > audio CD format in at least 10 years, but I do now. > > What is available to do so?
This script, ugly as hell, but works. :-) You need to install madplay or mpg123, as well as sox. If you also want to convert Ogg/Vorbis files, you need ogg123 (vorbis-tools). And of course you need a cd burning program such as cdrdao or cdrecord. See the examples for calling them at the end of the script. #!/bin/sh echo "=== MP3 + OGG/Vorbis -> Audio CD Converter ===================================" echo -n "MP3 decoders found:" DECODER=0 which mpg123 > /dev/null 2>&1 if [ $? -eq 0 ]; then DECODER=2 echo -n " mpg123" fi which madplay > /dev/null 2>&1 if [ $? -eq 0 ]; then DECODER=1 echo -n " madplay" fi if [ $DECODER -eq 0 ]; then echo "none, aborting." exit 1 fi echo -n ", using " if [ $DECODER -eq 1 ]; then echo "madplay." else echo -n "mpg123" which madplay > /dev/null 2>&1 if [ $? -eq 0 ]; then echo " and sox." else echo ", but sox is not available, exiting." exit 1 fi fi echo -n "OGG/Vorbis decoders found:" which ogg123 > /dev/null 2>&1 if [ $? -eq 0 ]; then echo " ogg123." else echo "none, aborting." exit 1 fi TOCFILE="audiocd.toc" echo "CD_DA" > $TOCFILE FILELIST=`ls *.[mo][pg][3g]` if [ "$FILELIST" = "" ]; then echo "No files (*.mp3 and/or *.ogg) found, aborting." exit 1 fi for FILE in *.[mo][pg][3g]; do echo -n "$FILE -> " echo $FILE | grep " " > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "filename contains spaces, cannot proceed." exit 1 fi TYPE="" echo $FILE | grep ".mp3" > /dev/null 2>&1 if [ $? -eq 0 ]; then TYPE="mp3" fi echo $FILE | grep ".ogg" > /dev/null 2>&1 if [ $? -eq 0 ]; then TYPE="ogg" fi if [ "$TYPE" = "ogg" ]; then ogg123 -q -d raw -f $FILE.raw $FILE sox -r 44100 -c 2 -w -s $FILE.raw $FILE.cdr rm $FILE.raw elif [ "$TYPE" = "mp3" ]; then case $DECODER in 1) madplay -q -o cdda:$FILE.cdr $FILE ;; 2) mpg123 -sq $FILE > $FILE.raw sox -r 44100 -c 2 -w -s $FILE.raw $FILE.cdr rm $FILE.raw ;; esac elif [ "$TYPE" = "" ]; then echo "file type unknown, aborting." exit 1 fi echo $FILE.cdr echo TRACK AUDIO COPY AUDIOFILE \"$FILE.cdr\" 0 >> $TOCFILE done echo "Your recording command could be:" echo " # cdrecord -eject -v -dao -audio *.cdr" echo " # cdrdao write --eject audiocd.toc" echo "After finished, don't forget to delete converter garbage:" echo " # rm *.cdr audiocd.toc" echo "==============================================================================" exit 0 -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ... _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"