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"

Reply via email to