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). Defaults to vorbis"
+echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus). 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 "-q <level>"
vorbis|ogg)
OUTPUT=$OGGOUTPUTCONTAINER
;;
+ opus)
+ OUTPUT=$OPUSOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
;;
esac
;;
+ opus)
+ run_command tagtrack-$OUTPUT-$1 true
+ ;;
+
flac)
(
echo ARTIST="$TRACKARTIST"
vorbis|ogg)
TEMPARG="PIPE_$OGGENCODERSYNTAX"
;;
+ opus)
+ TEMPARG="PIPE_$OPUSENCODERSYNTAX"
+ ;;
flac)
TEMPARG="PIPE_$FLACENCODERSYNTAX"
;;
vorbis|ogg)
OUTPUT=$OGGOUTPUTCONTAINER
;;
+ opus)
+ OUTPUT=$OPUSOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
;;
esac
;;
+ opus)
+ case "$2" in
+ %local*%)
+ case "$OPUSENCODERSYNTAX" in
+ opusenc)
+
+ if [ "$(eval echo ${COMMENT})" != "" ]; then
+ case "$COMMENT" in
+ *=*) ;;
+ *) COMMENT="COMMENT=$COMMENT" ;;
+ esac
+ fi
+ # Tag the file at encode time, as it can't be done after encoding.
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS --artist "$TRACKARTIST" --comment album="$DALBUM" --title "$TRACKNAME" --comment track="$1" --comment genre="$CDGENRE" --comment year="$CDYEAR" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS "$IN" "$OUT"
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ $RUN_COMMAND nice $DISTMP3NICE $DISTMP3 $DISTMP3OPTS "$2" "$IN" "$OUT" >/dev/null 2>&1
+ ;;
+ esac
+ ;;
flac)
case "$2" in
%local*%)
vorbis|ogg)
OUTPUT=$OGGOUTPUTCONTAINER
;;
+ opus)
+ OUTPUT=$OPUSOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
vorbis|ogg)
OUTPUT=$OGGOUTPUTCONTAINER
;;
+ opus)
+ OUTPUT=$OPUSOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
MP3ENCODERSYNTAX=default
OGGENCODERSYNTAX=default
+OPUSENCODERSYNTAX=default
FLACENCODERSYNTAX=default
SPEEXENCODERSYNTAX=default
MPCENCODERSYNTAX=default
# ogg
VORBIZE=vorbize
OGGENC=oggenc
+#opus
+OPUSENC=opusenc
# flac
FLAC=flac
# speex
VORBIZEOPTS=
OGGENCOPTS=
VORBISGAINOPTS="--album"
+#opus
+OPUSENCOPTS=
# flac
FLACOPTS=
FLACGAINOPTS="--add-replay-gain"
# This option is basically for Debian package dependencies:
# List of preferred outputs - by default, run with whatever we have in the path
-DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac
+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"
for OUTPUT in "$(echo "$OUTPUTTYPE" | tr \ \|| tr , \ | tr \| \ )"; do
case "$OUTPUT" in
vorbis:*|ogg:*) OGGENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
+ opus:*) OPUSENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
mp3:*) MP3ENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
flac:*) FLACENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
spx:*) SPEEXENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
[ "$DOREPLAYGAIN" = "y" ] && NEEDVORBISGAIN=y
OGGOUTPUTCONTAINER=ogg
;;
+ opus)
+ [ "$OPUSENCODERSYNTAX" = "default" ] && OPUSENCODERSYNTAX=opusenc
+ OPUSOUTPUTCONTAINER=opus
+ ;;
mp3)
[ "$MP3ENCODERSYNTAX" = "default" ] && MP3ENCODERSYNTAX=lame
[ "$DOTAG" = "y" ] && NEEDTAGGER=y
OGGENCODER="$OGGENC"
;;
esac
+case "$OPUSENCODERSYNTAX" in
+ opusenc)
+ OPUSENCODEROPTS="${OPUSENCODEROPTSCLI:-$OPUSENCOPTS}"
+ OPUSENCODER="$OPUSENC"
+ ;;
+esac
case "$FLACENCODERSYNTAX" in
flac)
FLACENCODEROPTS="${FLACENCODEROPTSCLI:-$FLACOPTS}"
PIPE_lame="-"
PIPE_bladeenc="-"
PIPE_oggenc="-"
+PIPE_opusenc="-"
PIPE_flac="-"
# Figure out if we can use pipes with the ripper/encoder combination
PIPEENCODERSVARCHECK="PIPE_$MP3ENCODERSYNTAX" ;;
vorbis|ogg)
PIPEENCODERSVARCHECK="PIPE_$OGGENCODERSYNTAX" ;;
+ opus)
+ PIPEENCODERSVARCHECK="PIPE_$OPUSENCODERSYNTAX" ;;
flac)
PIPEENCODERSVARCHECK="PIPE_$FLACENCODERSYNTAX" ;;
spx)
# Make sure a buncha things exist
for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
- $OGGENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
+ $OGGENCODER $OPUSENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
$AACENCODER $CDDBTOOL \
${NEEDATOMICPARSLEY+$ATOMICPARSLEY} \
${NEEDHTTPGET+$HTTPGET} ${NEEDDISTMP3+$DISTMP3} \
.BR abcde
is designed to automate this. It will take an entire CD and convert it into
a compressed audio format - Ogg/Vorbis, MPEG Audio Layer III, Free Lossless
-Audio Codec (FLAC), Ogg/Speex, MPP/MP+(Musepack) and/or M4A (AAC) format(s).
+Audio Codec (FLAC), Ogg/Speex, MPP/MP+(Musepack), M4A (AAC) or Opus format(s).
With one command, it will:
.TP
.B *
Normalize the volume of the individual file (or the album as a single unit)
.TP
.B *
-Compress to Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack) and/or M4A format(s), all in one CD read
+Compress to Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack), M4A and/or Opus format(s), all in one CD read
.TP
.B *
Comment or ID3/ID3v2 tag
.TP
.B \-o [filetype][:filetypeoptions]
Select output type. Can be "vorbis" (or "ogg"), "mp3", "flac", "spx", "mpc",
-"m4a" or "wav". Specify a comma-delimited list of output types to obtain all
-specified types. See the OUTPUTTYPE configuration variable. One can pass
+"m4a", "wav" or "opus". Specify a comma-delimited list of output types to obtain
+all specified types. See the OUTPUTTYPE configuration variable. One can pass
options to the encoder for a specific filetype on the command line separating
them with a colon. The options must be escaped with double-quotes.
.TP
will process the entire CD. Accepts ranges of track numbers -
"abcde 1-5 7 9" will process tracks 1, 2, 3, 4, 5, 7, and 9.
.SH OUTPUT
-Each track is, by default, placed in a separate file named after the track
-in a subdirectory named after the artist under the current directory.
-This can be modified using the OUTPUTFORMAT and VAOUTPUTFORMAT
-variables in your \fIabcde.conf\fR. Each file is given an extension identifying
-its compression format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.aac' or '.wav'.
+Each track is, by default, placed in a separate file named after the track in a
+subdirectory named after the artist under the current directory. This can be
+modified using the OUTPUTFORMAT and VAOUTPUTFORMAT variables in your
+\fIabcde.conf\fR. Each file is given an extension identifying its compression
+format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.aac', '.wav' or '.opus'.
.SH CONFIGURATION
\fBabcde\fR sources two configuration files on startup - \fI/etc/abcde.conf\fR and
\fI$HOME/.abcde.conf\fR, in that order.
Specifies the style of encoder to use for M4A (AAC) encoder. We support \'faac\'
as \'default\' but support is there for neroAacEnc as well.
.TP
+.B OPUSENCODERSYNTAX
+Specifies the style of encoder to use for the Opus encoder. At this point only
+\'opusenc\' is available for Opus encoding.
+.TP
.B NORMALIZERSYNTAX
Specifies the style of normalizer to use. Valid options are \'default\'
and \'normalize'\ (and both run \'normalize-audio\'), since we only support it,
.B PATHNAMES
The following configuration file options specify the pathnames of their
respective utilities: LAME, TOOLAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC,
-VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, AACENC, ID3, EYED3, METAFLAC,
+VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, AACENC, OPUSENC, ID3, EYED3, METAFLAC,
CDPARANOIA, CDDA2WAV, CDDAFS, CDDISCID, CDDBTOOL, EJECT, MD5SUM, DISTMP3,
VORBISCOMMENT, NORMALIZE, CDSPEED, MP3GAIN, VORBISGAIN, MPPGAIN, MKCUE, MKTOC,
CUE2DISCID (see option "\-X"), DIFF and HTTPGET.
If you wish to specify command-line options to any of the programs \fBabcde\fR uses,
set the following configuration file options: LAMEOPTS, TOOLAMEOPTS, GOGOOPTS,
BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, OGGENCOPTS,
-FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, AACENCOPTS, ID3OPTS, EYED3OPTS, MP3GAINOPTS,
-CDPARANOIAOPTS, CDDA2WAVOPTS, CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS,
-NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS, VORBISCOMMMENTOPTS, METAFLACOPTS,
+FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, AACENCOPTS, OPUSENCOPTS, ID3OPTS, EYED3OPTS,
+MP3GAINOPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS,
+DISTMP3OPTS, NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS, VORBISCOMMMENTOPTS, METAFLACOPTS,
DIFFOPTS, FLACGAINOPTS, VORBISGAINOPTS and HTTPGETOPTS.
.TP
.B CDSPEEDVALUE
Specifies the encoding format to output, as well as the default extension and
encoder. Defaults to "vorbis". Valid settings are "vorbis" (or "ogg")
(Ogg/Vorbis), "mp3" (MPEG-1 Audio Layer III), "flac" (Free Lossless Audio
-Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack)), "m4a" (for M4A (AAC)) or
-"wav" (Microsoft Waveform). Values like "vorbis,mp3" encode the tracks in both
-Ogg/Vorbis and MP3 formats. For example
+Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack)), "m4a" (for M4A (AAC)),
+"wav" (Microsoft Waveform) or "opus" (Opus Interactive Audio Codec). Values
+like "vorbis,mp3" encode the tracks in both Ogg/Vorbis and MP3 formats. For example
.br
OUTPUTTYPE=vorbis,flac
.br
\fBabcde\fR requires the following backend tools to work:
.TP
.B *
-An Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack) or M4A encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, faac, neroAacEnc)
+An Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack), M4A encoder or Opus encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, faac, neroAacEnc, opusenc).
.TP
.B *
An audio CD reading utility (cdparanoia, icedax, cdda2wav, dagrab)
# speexenc - the only encoder for SPEEXENCODERSYNTAX
# mpcenc - encoder for MPCENCODERSYNTAX
# faac, neroAacEnc - for AACENCODER
-# default is a valid option for oggenc, lame, flac, speexenc, mpcenc and faac.
+# opusenc - for OPUSENCODER
+# default is a valid option for oggenc, lame, flac, speexenc, mpcenc, faac and opus.
# Currently this affects the default location of the binary, the variable
# to pick encoder command-line options from, and where the options are
# given.
#SPEEXENCODERSYNTAX=default
#MPCENCODERSYNTAX=default
#AACENCODERSYNTAX=default
+#OPUSENCODERSYNTAX=default
# Specify the syntax of the normalize binary here - so far only 'normalize'
# is supported.
#SPEEXENC=speexenc
#MPCENC=mpcenc
#AACENC=faac
+#OPUSENC=opusenc
#ID3=id3
#EYED3=eyeD3
#OUTPUTTYPE="m4a"
#ATOMICPARSLEY='AtomicParsley'
+# OPUS
+# For the encoder options look at: opusenc -h.
+#OPUSENCOPTS='--bitrate 128'
+
#ID3OPTS=
#EYED3OPTS="--set-encoding=utf16-LE"
#CDPARANOIAOPTS=
# you can specify that here
#WAVOUTPUTDIR=`pwd`
-# OUTPUTTYPE can be either "ogg", "mp3", "flac" or "spx", or a combination
+# OUTPUTTYPE can be either "ogg", "mp3", "flac", "spx", "opus" or a combination
# of them separated with ",": "ogg,mp3".
#OUTPUTTYPE=ogg