echo "-n No lookup. Don't query CDDB, just create and use template"
echo "-N Noninteractive. Never prompt for anything"
echo "-o <type1[,type2]...>"
-echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,wv). Defaults to vorbis"
+echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,wv,ape). Defaults to vorbis"
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]...>"
run_command replaygain-mp3 nice $ENCNICE $MP3GAIN $MP3GAINOPTS "${OUTPUTFILES[@]}"
;;
mpc)
- run_command replaygain-mpc nice $ENCNICE $MPPGAIN --auto "${OUTPUTFILES[@]}"
+ run_command replaygain-mpc nice $ENCNICE $MPCGAIN "${OUTPUTFILES[@]}"
+ ;;
+ wv)
+ run_command replaygain-wv nice $ENCNICE $WVGAIN $WVGAINOPTS "${OUTPUTFILES[@]}"
;;
*);;
esac
wv)
run_command tagtrack-$OUTPUT-$1 true
;;
+ ape) # This tagging syntax is suitable for Robert Muth's application 'apetag', the Monkey's Audio
+ # Console port (mac) used for encoding does not have the ability to tag. Andrew.
+ run_command tagtrack-$OUTPUT-$1 nice $ENCNICE "$APETAG" -i "$ABCDETEMPDIR/track$1.ape" -m overwrite \
+ -p artist="$TRACKARTIST" -p album="$DALBUM" -p title="$TRACKNAME" -p track=${TRACKNUM:-$1} \
+ -p year="$CDYEAR" -p genre="$CDGENRE" ${COMMENTOUTPUT:+-p comment="$COMMENTOUTPUT"}
+ ;;
aac)
run_command tagtrack-$OUTPUT-$1 true
;;
wv)
TEMPARG="PIPE_$WVCENCODERSYNTAX"
;;
+ ape)
+ TEMPARG="PIPE_$APENCODERSYNTAX"
+ ;;
aac)
TEMPARG="PIPE_$AACENCODERSYNTAX"
;;
;;
mpc)
# Tag the file inline at encode time.
- $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" \
- --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" "$IN" "$OUT"
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" \
+ --track "$1" --genre "$CDGENRE" --year "$CDYEAR" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS "$IN" "$OUT"
+ fi
;;
wv)
if [ "$DOTAG" = "y" ]; then
$RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS "$IN" -o "$OUT"
fi
;;
+ ape)
+ $RUN_COMMAND nice $EFFECTIVE_NICE $APENCODER "$IN" "$OUT" $APENCODEROPTS
+ ;;
aac)
# aac container is only used to catch faac encoded files where faac
# is compiled without mp4 support (with libmp4v2). Andrew.
# do_batch_gain
# variables used:
-# MP3GAIN, MP3GAINOPTS, VORBISGAIN, VORBISGAINOPTS, MPPGAIN, MPPGAINOPTS
+# MP3GAIN, MP3GAINOPTS, VORBISGAIN, VORBISGAINOPTS, MPCGAIN
# FIXME #
do_batch_gain ()
{
SPEEXENCODERSYNTAX=default
MPCENCODERSYNTAX=default
WVENCODERSYNTAX=default
+APENCODERSYNTAX=default
AACENCODERSYNTAX=default
NORMALIZERSYNTAX=default
CUEREADERSYNTAX=default
FLAC=flac
# speex
SPEEXENC=speexenc
-# mpp (Musepack)
+# mpc (Musepack)
MPCENC=mpcenc
# wv (wavpack)
WVENC=wavpack
+# ape
+APENC=mac
+APETAG=apetag
# m4a
AACENC=faac
CDSPEED=eject
VORBISGAIN=vorbisgain
MP3GAIN=mp3gain
-MPPGAIN=replaygain
+MPCGAIN=mpcgain
+WVGAIN=wvgain
+# For Wavpack replay gain we set both the default of 'track gain'
+# as well as this option for 'album gain'. Better media players
+# such as vlc can select either or neither. Andrew.
+WVGAINOPTS='-a'
MKCUE=mkcue
MKTOC=cdrdao
DIFF=diff
MPCENCOPTS=
# wv
WVENCOPTS=
+# ape
+# Monkey's Audio Console (mac) chokes without a mode setting
+# so we set one here. Andrew.
+APENCOPTS='-c4000'
# m4a
AACENCOPTS=
spx:*) SPEEXENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
mpc:*) MPCENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
wv:*) WVENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
+ ape:*) APENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
m4a:*|aac:*) AACENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
esac
done
- for OUTPUT in "$(echo "$OUTPUTTYPE" | tr , \ )"; do
- TEMPOUTPUT=$( echo "$OUTPUT" | cut -d: -f1 )
+ # Allows commandline selection of options while using multiple outputs.
+ # Example: abcde -o 'flac:-8,mp3:-b 320' Patch by Matthias Andree.
+ for OUTPUT in $(echo "$OUTPUTTYPE" | tr -d ' ' | tr , ' '); do
+ TEMPOUTPUT=${OUTPUT%%:*}
TEMPOUTPUTTYPE="${TEMPOUTPUTTYPE:+$TEMPOUTPUTTYPE,}$TEMPOUTPUT"
done
OUTPUTTYPE="$TEMPOUTPUTTYPE"
;;
mpc)
[ "$MPCENCODERSYNTAX" = "default" ] && MPCENCODERSYNTAX=mpcenc
- [ "$DOREPLAYGAIN" = "y" ] && NEEDMPPGAIN=y
+ [ "$DOREPLAYGAIN" = "y" ] && NEEDMPCGAIN=y
;;
wv)
[ "$WVENCODERSYNTAX" = "default" ] && WVENCODERSYNTAX=wavpack
[ "$DOTAG" = "y" ]
+ [ "$DOREPLAYGAIN" = "y" ] && NEEDWVCGAIN=y
+ ;;
+ ape)
+ [ "$APENCODERSYNTAX" = "default" ] && APENCODERSYNTAX=mac
+ [ "$DOTAG" = "y" ]
;;
aac)
[ "$AACENCODERSYNTAX" = "default" ] && AACENCODERSYNTAX=faac
WVENCODER="$WVENC"
;;
esac
+case "$APENCODERSYNTAX" in
+ mac)
+ APENCODEROPTS="${APENCODEROPTSCLI:-$APENCOPTS}"
+ APENCODER="$APENC"
+ ;;
+esac
case "$AACENCODERSYNTAX" in
faac|neroAacEnc|fdkaac)
AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
PIPEENCODERSVARCHECK="PIPE_$MPCENCODER" ;;
wv)
PIPEENCODERSVARCHECK="PIPE_$WVENCODER" ;;
+ ape)
+ PIPEENCODERSVARCHECK="PIPE_$APENCODER" ;;
esac
decho "PIPERIPPERSVARCHECK: $( eval echo "\$$PIPERIPPERSVARCHECK" )"
if [ "$( eval echo "\$$PIPERIPPERSVARCHECK" )" = "$" ] || \
# Make sure a buncha things exist
for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
$OGGENCODER $OPUSENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
- $AACENCODER $WVENCODER $CDDBTOOL \
+ $AACENCODER $WVENCODER $CDDBTOOL $APENCODER $APETAG \
${NEEDHTTPGET+$HTTPGET} ${NEEDDISTMP3+$DISTMP3} \
${NEEDCOMMENTER+$VORBISCOMMENT} ${NEEDMETAFLAC+$METAFLAC} \
${NEEDNORMALIZER+$NORMALIZER} ${NEEDEJECT+$EJECT} \
${NEEDDISKUTIL+diskutil} ${NEEDCDSPEED+$CDSPEED} \
${NEEDVORBISGAIN+$VORBISGAIN} ${NEEDMP3GAIN+$MP3GAIN} \
- ${NEEDMPPGAIN+$MPPGAIN} ${NEEDCUEREADER+$CUEREADER} \
+ ${NEEDMPCGAIN+$MPCGAIN} ${NEEDCUEREADER+$CUEREADER} \
+ ${NEEDWVGAIN+WVGAIN} \
${NEEDCUE2DISCID+$CUE2DISCID}
do
checkexec "$X"