Rewrite the mungefilename function
[abcde.git] / abcde.conf
1 # System defaults for abcde version 2.7
2 # Nothing in this file is uncommented by default.
3 #
4 # If you wish to override these system-wide settings, create your own
5 # .abcde.conf file in your home directory.
6
7 # CDDB options
8 # Choose whether you want to use CDDB or Musicbrainz. Default is CDDB
9 # currently recognized options are 'cddb' and 'musicbrainz'
10 #CDDBMETHOD=cddb
11
12 # If you wish to use a different CDDB server, edit this line.
13 # If you just wanted to use a proxy server, just set your http_proxy
14 # environment variable - wget will use it correctly.
15 #CDDBURL="http://freedb.freedb.org/~cddb/cddb.cgi"
16
17 # The CDDB protocol level.
18 # Right now 5 is latin1 output and 6 is UTF8 encoding.
19 #CDDBPROTO=6
20
21 # The CDDB protocol requires hello information, including a valid username
22 # and hostname. If you feel paranoid about giving away such info, edit this
23 # line - the format is username@hostname.
24 #HELLOINFO="`whoami`@`hostname`"
25
26 # This controls the email address CDDB changes are submitted to.
27 #CDDBSUBMIT=freedb-submit@freedb.org
28
29 # The following options control whether or not fetched CDDB entries
30 # are cached locally in $CDDBLOCALDIR
31 #CDDBCOPYLOCAL="n"
32 #CDDBLOCALDIR="$HOME/.cddb"
33 #CDDBLOCALRECURSIVE="y"
34
35 # If NOSUBMIT is set to y, then abcde will never prompt asking if you
36 # wish to submit your edited cddb file.
37 #NOSUBMIT=n
38
39 # If NOCDDBQUERY is set to y, then abcde will never even try to access
40 # the CDDB server; running abcde will automatically drop you into a
41 # blank cddb file to edit at your leisure.  This is the same as the
42 # -n option.  NOCDDBQUERY=y implies NOSUBMIT=y.
43 #NOCDDBQUERY=n
44
45 # Select here if you want to use the locally stored CDDB entries.
46 # This is useful if you do a lot of editing to those CDDB entries.
47 # Also, other tools like Grip store CDDB entries under $HOME/.cddb,
48 # so they can be reused when ripping CDs. (If this is set to "y" make
49 # sure that CDDBLOCALRECURSIVE is also set to "y".)
50 #CDDBUSELOCAL="n"
51
52 # List, separated with a comma, the fields we want the parsing function to
53 # output. Defaults to YEAR and GENRE, for a complete list of fields provided by
54 # CDDB.
55 # The fields are not case sensitive. Actually, "y,g" will work as fine as "Y,G"
56 # or "YEAR, GENRE"
57 #SHOWCDDBFIELDS=year,genre
58
59 # Specify the style of encoder to use here -
60 # oggenc, vorbize - for OGGENCODERSYNTAX
61 # lame, gogo, bladeenc, l3enc, xingmp3enc, mp3enc - for MP3ENCODERSYNTAX
62 # flac - the only supported for FLACENCODERSYNTAX at the moment
63 # speexenc - the only encoder for SPEEXENCODERSYNTAX
64 # mpcenc - encoder for MPCENCODERSYNTAX
65 # wavpack - encoder for WVENCODERSYNTAX
66 # mac - for APENCODERSYNTAX
67 # faac, neroAacEnc, fdkaac - for AACENCODERSYNTAX
68 # opusenc - for OPUSENCODERSYNTAX
69 # default is a valid option for oggenc, lame, flac, speexenc, mpcenc, wavpack, faac and opus.
70 # Currently this affects the default location of the binary, the variable
71 # to pick encoder command-line options from, and where the options are
72 # given.
73 #MP3ENCODERSYNTAX=default
74 #OGGENCODERSYNTAX=default
75 #FLACENCODERSYNTAX=default
76 #SPEEXENCODERSYNTAX=default
77 #MPCENCODERSYNTAX=default
78 #WVENCODERSYNTAX=default
79 #APENCODERSYNTAX=default
80 #AACENCODERSYNTAX=default
81 #OPUSENCODERSYNTAX=default
82
83 # Specify the syntax of the normalize binary here - so far only 'normalize'
84 # is supported.
85 #NORMALIZERSYNTAX=default
86
87 # CD reader program to use - currently recognized options are 'cdparanoia',
88 # 'libcdio' (cd-paranoia),'icedax', 'cdda2wav', 'dagrab', 'pird',
89 # 'cddafs' (Mac OS X only) and 'flac'.
90 #CDROMREADERSYNTAX=cdparanoia
91
92 # CUE reader syntax for the CUE reader program to use.
93 # abcde supports 2 CUE modes: 'mkcue' and 'abcde.mkcue' so you can set the
94 # MKCUE variable accordingly. The 'abcde.mkcue' uses an internal
95 # implementation, without the need of an external program.
96 #CUEREADERSYNTAX=default
97
98 # Specify the program to convert a CUE sheet back to a CD disc ID for CDDB queries.
99 # Select between '/path/to/cue2discid' (provided as an example) or
100 # 'abcde.cue2discid', implemented internaly.
101 #CUE2DISCID=abcde.cue2discid
102
103 # Keep the wav files after encoding. Set it to "y" and remove "clean" from
104 # the list of default actions, since we purge the temp directory as default.
105 #KEEPWAVS=n
106
107 # Track padding: force abcde to pad tracks using 0, so every song uses a two
108 # digit entry. If set to "y", even a single song encoding outputs a file like
109 # 01.my_song.ext
110 #PADTRACKS=n
111
112 # Define if you want abcde to be non-interactive.
113 # Keep in mind that there is no way to deactivate it right now in the command
114 # line, so setting this option makes abcde to be always non-interactive.
115 #INTERACTIVE=n
116
117 # Specify 'nice'ness of the encoder, the CD reader and the distmp3 proc.
118 # This is a relative 'nice'ness (that is, if the parent process is at a
119 # nice level of 12, and the ENCNICE is set to 3, then the encoder will
120 # run with an absolute nice value of 15. Note also, that setting these
121 # to be empty will result in some default niceness increase (4 in tcsh
122 # and 10 using the bsdutils' nice).
123 #ENCNICE=10
124 #READNICE=10
125 #DISTMP3NICE=10
126
127 # Paths of programs to use
128
129 # Encoders:
130 #LAME=lame
131 #TOOLAME=toolame
132 #GOGO=gogo
133 #BLADEENC=bladeenc
134 #L3ENC=l3enc
135 #XINGMP3ENC=xingmp3enc
136 #MP3ENC=mp3enc
137 #VORBIZE=vorbize
138 #OGGENC=oggenc
139 #FLAC=flac
140 #SPEEXENC=speexenc
141 #MPCENC=mpcenc
142 #WVENC=wavpack
143 #APENC=mac
144 #FAAC=faac
145 #NEROAACENC=neroAacEnc
146 #FDKAAC=fdkaac
147 #OPUSENC=opusenc
148
149 # Taggers, rippers, replaygain etc:
150 #ID3=id3
151 #ID3V2=id3v2
152 #EYED3=eyeD3
153 #CDPARANOIA=cdparanoia
154 #CD_PARANOIA=cd-paranoia
155 #CDDA2WAV=icedax
156 #PIRD=pird
157 #CDDAFS=cp
158 #CDDISCID=cd-discid
159 #CDDBTOOL=cddb-tool
160 #EJECT=eject
161 #MD5SUM=md5sum
162 #DISTMP3=distmp3
163 #VORBISCOMMENT=vorbiscomment
164 #METAFLAC=metaflac
165 #NORMALIZE=normalize-audio
166 #CDSPEED=eject
167 #VORBISGAIN=vorbisgain
168 #MKCUE=mkcue
169 #MKTOC=cdrdao
170 #DIFF=diff
171 #WVGAIN=wvgain
172 #APETAG=apetag
173 #GLYRC=glyrc
174 #IDENTIFY=identify
175 #CONVERT=convert
176 #DISPLAYCMD=display
177
178 # Options to call programs with:
179
180 # If HTTPGET is modified, the HTTPGETOPTS options should also be defined
181 # accordingly. If HTTPGET is changed, the default options will be set,
182 # if HTTPGETOPTS is empty or not defined.
183 #HTTPGET=wget
184 # for fetch (FreeBSD): HTTPGETOPTS="-q -o -"
185 # for wget: HTTPGETOPTS="-q -nv -O -"
186 # for curl (MacOSX): HTTPGETOPTS="-f -s"
187 #HTTPGETOPTS="-q -O -"
188
189 # MP3:
190 # For the best LAME encoder options have a look at:
191 # <http://wiki.hydrogenaudio.org/index.php?title=LAME#Recommended_encoder_settings>
192 # A good option is '-V 0' which gives Variable Bitrate Rate (VBR) recording
193 # with a target bitrate of ~245 Kbps and a bitrate range of 220...260 Kbps.
194 #LAMEOPTS=
195 #TOOLAMEOPTS=
196 #GOGOOPTS=
197 # Bladeenc still works with abcde in 2015, and the last release of bladeenc
198 # was in 2001! Settings that will produce a great encode are: '-br 192' 
199 #BLADEENCOPTS=
200 # L3enc still works with abcde in 2015, pretty amazing when you realise 
201 # that the last release of l3enc was in 1997! Settings that will produce 
202 # a great encode are: '-br 256000 -hq -crc'
203 #L3ENCOPTS=
204 #XINGMP3ENCOPTS=
205 # And mp3enc also still works with abcde in 2015 with the last release
206 # of mp3enc in 1998! Settings that will produce a great encode, albeit
207 # a slow one, are: '-v -br 256000 -qual 9 -no-is -bw 16500'
208 #MP3ENCOPTS=
209
210 # Ogg:
211 #VORBIZEOPTS=
212 #OGGENCOPTS=
213
214 # FLAC:
215 # The flac option is a workaround for an error where flac fails
216 # to encode with error 'floating point exception'. This is flac 
217 # error in get_console_width(), corrected in flac 1.3.1
218 #FLACOPTS="--silent"
219
220 # Speex:
221 #SPEEXENCOPTS=
222
223 # MPP/MP+ (Musepack):
224 # For the encoder options look at 'mpcenc --longhelp', consider
225 # setting '--extreme' for a good quality encode.
226 #MPCENCOPTS=
227
228 # WavPack:
229 # Look at 'wavpack --help' for detailed options, consider using '-hx3' 
230 # for a good quality encode
231 #WVENCOPTS=
232 # For Wavpack replay gain we set both the default of 'track gain' 
233 # as well as this option for 'album gain'. Better media players
234 # such as vlc can select either or neither.    
235 #WVGAINOPTS='-a'
236
237 # Monkey's Audio (ape)
238 # Without this set mac chokes unfortunately. Choices
239 # are from 1000 to 5000.
240 #APENCOPTS='-c4000'
241
242 # M4A/AAC
243 # Note that the old AACENCOPTS has been rendered obsolete by
244 # the following options, new to abcde 2.7:
245 #  1. faac: see 'faac --long-help' and consider
246 #     using '-q 250' for a good quality encode.
247 #FAACENCOPTS=
248 #  2. neroAacEnc: see 'neroAacEnc -help' and
249 #     consider using '-q 0.65' for a good quality encode.
250 #NEROAACENCOPTS=
251 #  3. fdkaac: see 'fdkaac --help' and consider using 
252 #     '--profile 2 --bitrate-mode 5 --afterburner 1'
253 #     for a good quality encode. 
254 #FDKAACENCOPTS='--bitrate 192k'
255
256 # OPUS
257 # For the encoder options look at: 'opusenc -h'
258 #OPUSENCOPTS=
259
260 # mp3 tagging:
261 # There are three ways to tag MP3 files:
262 #   1. id3v1 (with id3)
263 #   2. id3v2.3 (with id3v2)
264 #   3. id3v2.4 (with eyeD3) This is the default
265 # Use ID3TAGV to select one of the older formats:
266 #ID3TAGV=id3v2.4
267 #ID3OPTS=
268 #ID3V2OPTS=
269 #EYED3OPTS="--set-encoding=utf16-LE"
270
271 # Other options:
272 # The variable CDPARANOIOPTS is also used by GNU's cd-paranoia,
273 # so use this when setting CDROMREADERSYNTX=libcdio.
274 #CDPARANOIAOPTS=
275 #CDDA2WAVOPTS=
276 #PIRDOPTS="-p"
277 #CDDAFSOPTS="-f"
278 #CDDBTOOLOPTS=
279 #EJECTOPTS=
280 #DISTMP3OPTS=
281 #NORMALIZEOPTS=
282 #CDSPEEDOPTS="-x"
283 #CDSPEEDVALUE=""
284 #MKCUEOPTS=""
285 #MKTOCOPTS=""
286 #DIFFOPTS=""
287 #VORBISCOMMENTOPTS="-R"
288 #METAFLACOPTS="--no-utf8-convert"
289
290 # Actions to take
291 # Comma-separated list of one or more of the following:
292 #  cddb,cue,read,normalize,encode,tag,move,replaygain,playlist,getalbumart,clean,default
293 #   encode implies read
294 #   normalize implies read
295 #   tag implies cddb,read,encode
296 #   move implies cddb,read,encode,tag
297 #   replaygain implies cddb,read,encode,tag,move
298 #   playlist implies cddb
299 # An action can be added to the "default" action by specifying it along with
300 # "default", without having to repeat the default ones:
301 #  ACTIONS=default,playlist
302 # The default action list (referenced as "default") is defined in the following
303 # comment:
304 #ACTIONS=cddb,read,encode,tag,move,clean
305
306 # CD device you want to read from
307 # It can be defined as a singletrack flac file, but since it might change from
308 # file to file it makes little sense to define it here.
309 #CDROM=/dev/cdrom
310 # If we are using the IDE bus, we need CDPARANOIACDROMBUS defined as "d"
311 # If we are using the ide-scsi emulation layer, we need to define a "g"
312 #CDPARANOIACDROMBUS="d"
313
314 # If you'd like to make a default location that overrides the current
315 # directory for putting mp3's, uncomment this.
316 #OUTPUTDIR=`pwd`
317
318 # Or if you'd just like to put the temporary .wav files somewhere else
319 # you can specify that here
320 #WAVOUTPUTDIR=`pwd`
321
322 # OUTPUTTYPE can be any of a number of formats, either a single format
323 # (e.g. "ogg") or a combination of them separated with ","
324 # (e.g. "flac,mp3"). Currently recognised and supported are:
325 # "flac", "m4a", "mp3, "mpc", "ogg", "opus", "spx", "vorbis", "wav", "wv", "ape"
326 #OUTPUTTYPE=ogg
327
328 # Output filename format - change this to reflect your inner desire to
329 # organize things differently than everyone else :)
330 # You have the following variables at your disposal:
331 # OUTPUT, GENRE, ALBUMFILE, ARTISTFILE, TRACKFILE, TRACKNUM and YEAR.
332 # Make sure to single-quote this variable. abcde will automatically create
333 # the directory portion of this filename.
334 # NOTICE: OUTPUTTYPE has been deprecated in the OUTPUTFORMAT string.
335 # Since multiple-output was integrated we always append the file type
336 # to the files. Remove it from your user defined string if you are getting
337 # files like ".ogg.ogg".
338 #OUTPUTFORMAT='${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
339
340 # Like OUTPUTFORMAT but for Various Artists discs.
341 #VAOUTPUTFORMAT='Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
342
343 # Like OUTPUTFORMAT and VAOUTPUTFORMAT but for the ONEFILE rips.
344 #ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT
345 #VAONETRACKOUTPUTFORMAT=$VAOUTPUTFORMAT
346
347 # Define how many encoders to run at once. This makes for huge speedups
348 # on SMP systems. Defaults to 1. Equivalent to -j.
349 #MAXPROCS=2
350
351 # Support for systems with low disk space:
352 # n:    Default parallelization (read entire CD in while encoding)
353 # y:    No parallelization (rip, encode, rip, encode...)
354 #LOWDISK=n
355
356 # If set to y, enables batch mode normalization, which preserves relative
357 # volume differences between tracks of an album.
358 #BATCHNORM=n
359
360 # Enables nogap encoding when using the 'lame' encoder.
361 #NOGAP=y
362
363 # Set the playlist file location format. Uses the same variables and format
364 # as OUTPUTFORMAT. If the playlist is specified to be in a subdirectory, it
365 # will be created for you and the playlist will reference files from that
366 # subdirectory.
367 #PLAYLISTFORMAT='${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u'
368 # If you want to prefix every filename in a playlist with an arbitrary
369 # string (such as 'http://you/yourstuff/'), use this option
370 #PLAYLISTDATAPREFIX=''
371
372 #Like PLAYLIST{FORMAT,DATAPREFIX} but for Various Artists discs:
373 #VAPLAYLISTFORMAT='${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u'
374 #VAPLAYLISTDATAPREFIX=''
375
376 #This will give the playlist CR-LF line-endings, if set to "y".
377 #(some hardware players insist on CR-LF line-endings)
378 #DOSPLAYLIST=n
379
380 # album art download options (see glyrc's help for details with more detailed 
381 # examples here: https://github.com/sahib/glyr/wiki/Commandline-arguments).
382 # For example use '--formats jpg;jpeg' to only search for JPEG images
383 # These options: '--from <provider>' and '--lang <langcode>' might also be useful
384 #GLYRCOPTS=
385 #ALBUMARTFILE="cover.jpg"
386 #ALBUMARTTYPE="JPEG"
387
388 # Options for ImageMagick commands used by album art processing when available
389 # For example: CONVERTOPTS="-colorspace RGB -resize 600x600>"
390 # to make the image RGB and fit inside 600x600 while keeping the aspect ratio
391 #IDENTIFYOPTS=
392 #CONVERTOPTS=
393 #DISPLAYCMDOPTS="-resize 512x512 -title abcde_album_art"
394 # By default convert is only called when the image type is different from
395 # ALBUMARTTYPE, use ALBUMARTALWAYSCONVERT="y" to always call convert
396 #ALBUMARTALWAYSCONVERT="n"
397
398 # Custom filename munging:
399 # By default, abcde will do the following to CDDB data to get a useful filename:
400 # 1. Delete any dots preceding the title (first sed command)
401 # 2. Replace all spaces with an underscore (second sed command). Simply remove
402 #   this if you prefer spaces.
403 # 3. Delete a grab bag of characters which variously Windows and Linux do not permit 
404 #   (tr command). Remove any of these from the list if you wish to actually use them.
405 #   
406 #mungefilename ()
407 #{
408 #       echo "$@" | sed -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]"
409 #}
410
411 # Custom genre munging:
412 # By default we just transform uppercase to lowercase. Not much of a fancy
413 # function, with not much use, but one can disable it or just turn the first
414 # Uppercase.
415 #mungegenre ()
416 #{
417 #       echo $CDGENRE | tr "[:upper:]" "[:lower:]"
418 #}
419
420
421 # Custom pre-read function
422 # By default it does nothing.
423 # You can set some things to get abcde function in better ways:
424 # * Close the CD tray using eject -t (if available in eject and supported by
425 #   your CD device.
426 # * Set the CD speed. You can also use the built-in options, but you can also
427 #   set it here. In Debian, eject -x and cdset -x do the job.
428 # KEEP IN MIND that executables included in pre_read must be in your $PATH or
429 # you have to define them with full /path/to/binary
430 # Uncomment and substitute the ":" with your commands.
431 #pre_read ()
432 #{
433 #:
434 #}
435
436 # Custom post-read function
437 # By default it does nothing.
438 # You can set some things to get abcde function in better ways:
439 # * Store a copy of the CD TOC.
440 # KEEP IN MIND that executables included in post_read must be in your $PATH or
441 # you have to define them with full /path/to/binary
442 # Uncomment and substitute the ":" with your commands.
443 #post_read ()
444 #{
445 #:
446 #}
447
448 # post_encode
449 # By default it does nothing.
450 # You can set some things to get abcde function in better ways:
451 # * Move the resulting directory over the network
452 # * Compare results with a previously made run, for tests
453 # KEEP IN MIND that executables included in post_encode must be in your $PATH or
454 # you have to define them with full /path/to/binary
455 # Uncomment and substitute the ":" with your commands.
456 #post_encode ()
457 #{
458 #:
459 #}
460
461 # If you'd like to have abcde eject the cdrom after all the tracks have been
462 # read, uncomment the following line.
463 #EJECTCD=y
464
465 # To encode on the remote machines foo, bar, baz, quux, and qiix, as well as
466 # on the local machine (requires distmp3 to be installed on local machine and
467 # distmp3host to be installed and running on all remote machines - see README)
468 #REMOTEHOSTS=foo,bar,baz,quux,qiix
469
470 # Set to 1,2, etc. to obtain some information about actions happening in the background
471 # Useful if you have a slow network or CDDB servers seem unresponsive.
472 #EXTRAVERBOSE=0