c9c2ca27 |
1 | .TH ABCDE 1 |
2 | .SH NAME |
99d009fa |
3 | abcde \- Grab an entire CD and compress it to Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+(Musepack) format. |
c9c2ca27 |
4 | .SH SYNOPSIS |
5 | .B abcde |
6 | .I [options] [tracks] |
7 | .SH DESCRIPTION |
8 | Ordinarily, the process of grabbing the data off a CD and encoding it, then |
9 | tagging or commenting it, is very involved. |
10 | .BR abcde |
11 | is designed to automate this. It will take an entire CD and convert it into |
12 | a compressed audio format - Ogg/Vorbis, MPEG Audio Layer III, Free Lossless |
99d009fa |
13 | Audio Codec (FLAC), Ogg/Speex or MPP/MP+(Musepack). With one command, it will: |
c9c2ca27 |
14 | .TP |
15 | .B * |
16 | Do a CDDB query over the Internet to look up your CD or use a locally stored CDDB entry |
17 | .TP |
18 | .B * |
19 | Grab a track from your CD |
20 | .TP |
21 | .B * |
99d009fa |
22 | Compress it to Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+(Musepack) format |
c9c2ca27 |
23 | .TP |
24 | .B * |
25 | Comment or ID3 tag it |
26 | .TP |
27 | .B * |
28 | Give it an intelligible filename |
29 | .TP |
30 | .B * |
31 | Delete the intermediate WAV file (or save it for later use) |
32 | .TP |
33 | .B * |
34 | Repeat until finished |
35 | .SH OPTIONS |
36 | .TP |
37 | .B \-1 |
38 | Encode the whole CD in a single file. The resulting file uses the CD title |
39 | for tagging. |
40 | .TP |
41 | .B \-a [actions] |
42 | Comma-delimited list of actions to perform. Can be one or more of: |
43 | cddb, read, normalize, encode, tag, move, playlist, clean. Normalize |
44 | and encode imply read. Tag implies cddb, read, encode. Move implies |
45 | cddb, read, encode, tag. Playlist implies cddb. The default is to |
46 | do all actions except normalize and playlist. |
47 | .TP |
48 | .B \-b |
49 | Enable batch mode normalization. See the BATCH configuration variable. |
50 | .TP |
51 | .B \-c [filename] |
52 | Specifies an additional configuration file to parse. Configuration options |
53 | in this file override those in /etc/abcde.conf or $HOME/.abcde.conf. |
54 | .TP |
55 | .B \-C [discid] |
56 | Allows you to resume a session for |
57 | .I discid |
58 | when you no longer have the CD available (abcde will automatically resume if |
59 | you still have the CD in the drive). You must have already finished at |
60 | least the "read" action during the previous session. |
61 | .TP |
62 | .B \-d [devicename] |
63 | CD\-ROM block device that contains audio tracks to be read. |
64 | .TP |
65 | .B \-D |
66 | Capture debugging information (you'll want to redirect this \- try 'abcde \-D |
67 | 2>logfile') |
68 | .TP |
81bc6204 |
69 | .B \-h |
70 | Get help information. |
04609998 |
71 | .TP |
c9c2ca27 |
72 | .B \-j [number] |
73 | Start [number] encoder processes at once. Useful for SMP systems. Overrides |
74 | the MAXPROCS configuration variable. Set it to "0" when using distmp3 to avoid |
75 | local encoding processes. |
76 | .TP |
77 | .B \-k |
78 | Keep the wav files after encoding. |
79 | .TP |
80 | .B \-l |
81 | Use the low-diskspace algorithm. See the LOWDISK configuration variable. |
82 | .TP |
83 | .B \-L |
84 | Use a local CDDB repository. See CDDBLOCALDIR variable. |
85 | .TP |
81bc6204 |
86 | .B \-n |
c9c2ca27 |
87 | Do not query CDDB database. Create and use a template. Edit the template to |
88 | provide song names, artist(s), ... |
89 | .TP |
81bc6204 |
90 | .B \-N |
c9c2ca27 |
91 | Non interactive mode. Do not ask anything from the user. Just go ahead. |
92 | .TP |
81bc6204 |
93 | .B \-m |
c9c2ca27 |
94 | Create DOS-style playlists, modifying the resulting one by adding CRLF line |
95 | endings. Some hardware players insist on having those to work. |
96 | .TP |
97 | .B \-o [filetype] |
99d009fa |
98 | Select output type. Can be "ogg", "mp3", "flac", "spx" or "mpc". Specify a |
c9c2ca27 |
99 | comma-delimited list of output types to obtain all specified types. See |
100 | the OUTPUTTYPE configuration variable. |
101 | .TP |
102 | .B \-p |
103 | Pads track numbers with 0\'s. |
104 | .TP |
105 | .B \-r [hosts...] |
106 | Remote encode on this comma-delimited list of machines using distmp3. See |
107 | the REMOTEHOSTS configuration variable. |
108 | .TP |
81bc6204 |
109 | .B \-R |
110 | Add replaygain information to the id3 or tag information for play |
111 | normalization. Only works with MP3 and Ogg/Vorbis. |
112 | .TP |
99d009fa |
113 | .B \-s [number] |
79e3928b |
114 | [DEPRECATED: use -t, see below] |
99d009fa |
115 | .TP |
c9c2ca27 |
116 | .B \-S [speed] |
117 | Set the speed of the CD drive. Needs CDSPEED and CDSPEEDOPTS set properly |
118 | and both the program and device must support the capability. |
119 | .TP |
79e3928b |
120 | .B \-t [number] |
121 | Start the numbering of the tracks at a given number. It only affects the |
122 | filenames and the playlist. Internal (tag) numbering remains the same. |
123 | .TP |
124 | .B \-T [number] |
125 | Same as \-t but changes also the internal (tag) numbering. Keep in mind that |
126 | the default TRACK tag for MP3 is $T/$TRACKS so it is changed to simply $T. |
127 | .TP |
c9c2ca27 |
128 | .B \-v |
129 | Show the version and exit |
130 | .TP |
131 | .B \-V |
132 | Be a bit more verbose. On slow networks the CDDB requests might give the |
133 | sensation nothins is happening. |
134 | .TP |
135 | .B \-x |
136 | Eject the CD when all tracks have been read. See the EJECTCD configuration |
137 | variable. |
138 | .TP |
81bc6204 |
139 | .B \-w [comment] |
140 | Add a comment to the tracks ripped from the CD. |
141 | .TP |
142 | .B \-W [number] |
143 | Concatenate CD\'s. It uses the number provided to define a comment "CD #" and |
144 | to modify the numbering of the tracks, starting with "#01". |
c9c2ca27 |
145 | .TP |
146 | .B [tracks] |
147 | A list of tracks you want abcde to process. If this isn't specified, abcde |
148 | will process the entire CD. Accepts ranges of track numbers - |
149 | "abcde 1-5 7 9" will process tracks 1, 2, 3, 4, 5, 7, and 9. |
150 | .SH OUTPUT |
151 | Each track is, by default, placed in a separate file named after the track |
9f659ada |
152 | in a subdirectory named after the artist under the current directory. |
c9c2ca27 |
153 | This can be modified using the OUTPUTFORMAT and VAOUTPUTFORMAT |
9f659ada |
154 | variables in your abcde.conf. Each file is given an extension identifying |
155 | its compression format, '.ogg', '.mp3', '.flac', '.spx', or '.mpc'. |
c9c2ca27 |
156 | .SH CONFIGURATION |
157 | abcde sources two configuration files on startup - /etc/abcde.conf and |
158 | $HOME/.abcde.conf, in that order. |
159 | .TP |
160 | The configuration variables have to be set as follows: |
161 | .TP |
162 | .B VARIABLE=value |
c9c2ca27 |
163 | Except when "value" needs to be quoted or otherwise interpreted. If other |
164 | variables within "value" are to be expanded upon reading the configuration |
165 | file, then double quotes should be used. If they are only supposed to be |
166 | expanded upon use (for example OUTPUTFORMAT) then single quotes must be used. |
167 | .TP |
168 | All sh escaping/quoting rules apply. |
169 | .TP |
170 | Here is a list of options abcde recognizes: |
171 | .TP |
172 | .B CDDBURL |
173 | Specifies a server to use for CDDB lookups. |
174 | .TP |
81bc6204 |
175 | .B HELLOINFO |
176 | Specifies the Hello information to send to the CDDB server. The CDDB |
177 | protocol requires you to send a valid username and hostname each time you |
178 | connect. The format of this is username@hostname. |
179 | .TP |
180 | .B CDDBLOCALDIR |
181 | Specifies a directory where we store a local CDDB repository. The entries must |
182 | be standard CDDB entries, with the filename being the DISCID value. Other |
183 | CD playing and ripping programs (like Grip) store the entries under ~/.cddb |
184 | and we can make use of those entries. |
185 | .TP |
186 | .B CDDBCOPYLOCAL |
187 | Store local copies of the CDDB entries under the $CDDBLOCALDIR directory. |
188 | .TP |
189 | .B CDDBUSELOCAL |
190 | Actually use the stored copies of the CDDB entries. Can be overriden using the |
191 | "-L" flag (if is CDDBUSELOCAL in "n"). If an entry is found, we always give |
192 | the choice of retrieving a CDDB entry from the internet. |
193 | .TP |
c9c2ca27 |
194 | .B OGGENCODERSYNTAX |
195 | Specifies the style of encoder to use for the Ogg/Vorbis encoder. Valid options |
196 | are \'oggenc\' (default for Ogg/Vorbis) and \'vorbize\'. |
197 | This affects the default location of the binary, |
198 | the variable to pick encoder command-line options from, and where the options |
199 | are given. |
200 | .TP |
201 | .B MP3ENCODERSYNTAX |
202 | Specifies the style of encoder to use for the MP3 encoder. Valid options are |
203 | \'lame\' (default for MP3), \'gogo\', \'bladeenc\', \'l3enc\' and \'mp3enc\'. |
204 | Affects the same way as explained above for Ogg/Vorbis. |
205 | .TP |
206 | .B FLACENCODERSYNTAX |
207 | Specifies the style of encoder to use for the FLAC encoder. At this point only |
208 | \'flac\' is available for FLAC encoding. |
209 | .TP |
210 | .B SPEEXENCODERSYNTAX |
211 | Specifies the style of encoder to use for Speex encoder. At this point only |
212 | \'speexenc\' is available for Ogg/Speex encoding. |
213 | .TP |
99d009fa |
214 | .B MPPENCODERSYNTAX |
215 | Specifies the style of encoder to use for MPP/MP+ (Musepack) encoder. At this |
216 | point we only have \'mppenc\' available, from corecodecs.org. |
217 | .TP |
c9c2ca27 |
218 | .B NORMALIZERSYNTAX |
219 | Specifies the style of normalizer to use. Valid options are \'default\' |
81bc6204 |
220 | and \'normalize'\ (and both run \'normalize-audio\'), since we only support it, |
221 | ATM. |
c9c2ca27 |
222 | .TP |
81bc6204 |
223 | .B CDROMREADERSYNTAX |
224 | Specifies the style of cdrom reader to use. Valid options are \'cdparanoia\' |
225 | and \'debug\'. It is used for querying the CDROM and obtain a list of valid |
226 | tracks and DATA tracks. Right now, only cdparanoia is supported. |
c9c2ca27 |
227 | .TP |
81bc6204 |
228 | .B KEEPWAVS |
229 | It defaults to no, so if you want to keep those wavs ripped from your CD, |
230 | set it to "y". You can use the "-k" switch in the command line. The default |
231 | behaviour with KEEPWAVS set is the keep the temporary directory and the wav |
232 | files even you have requested the "clean" action. |
c9c2ca27 |
233 | .TP |
81bc6204 |
234 | .B PADTRACKS |
235 | If set to "y", it adds 0's to the file numbers to complete a two-number |
236 | holder. Usefull when encoding tracks 1-9. |
c9c2ca27 |
237 | .TP |
81bc6204 |
238 | .B INTERACTIVE |
239 | Set to "n" if you want to perform automatic rips, without user intervention. |
240 | .TP |
241 | .B NICE VALUES |
242 | Define the values for priorities (nice values) for the different CPU-hungry |
243 | processes: encoding (ENCNICE), CDROM read (READNICE) and distributed encoder |
244 | with distmp3 (DISTMP3NICE). |
245 | .TP |
246 | .B PATHNAMES |
247 | The following configuration file options specify the pathnames of their |
248 | respective utilities: LAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC, VORBIZE, |
249 | OGGENC, FLAC, SPEEXENC, MPPENC, ID3, ID3V2, CDPARANOIA, CDDA2WAV, CDDAFS, |
250 | CDDISCID, CDDBTOOL, EJECT, MD5SUM, DISTMP3, VORBISCOMMENT, NORMALIZE, CDSPEED |
251 | and HTTPGET. |
252 | .TP |
253 | .B COMMAND-LINE OPTIONS |
254 | If you wish to specify command-line options to any of the programs abcde |
255 | uses, set the following configuration file options: LAMEOPTS, GOGOOPTS, |
256 | BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, OGGENCOPTS, |
257 | FLACOPTS, SPEEXENCOPTS, MPPENCOPTS, ID3OPTS, ID3V2OPTS, CDPARANOIAOPTS, |
258 | CDDA2WAVOPTS, CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS, |
259 | CDSPEEDOPTS and HTTPGETOPTS. |
260 | .TP |
261 | .B CDSPEEDVALUE |
262 | Set the value of the CDROM speed. The default is to read the disc as fast as |
263 | the reading program and the system permits. The steps are defined as 150kB/s |
264 | (1x). |
265 | .TP |
266 | .B ACTIONS |
267 | The default actions to be performed when reading a disc. |
268 | .TP |
269 | .B CDROM |
270 | If set, it points to the CD-Rom device which has to be used for audio |
271 | extraction. Abcde tries to guess the right device, but it may fail. |
c9c2ca27 |
272 | .TP |
273 | .B OUTPUTDIR |
274 | Specifies the directory to place completed tracks/playlists in. |
275 | .TP |
276 | .B WAVOUTPUTDIR |
277 | Specifies the temporary directory to store .wav files in. Abcde may use up |
278 | to 700MB of temporary space for each session (although it is rare to use |
279 | over 100MB for a machine that can encode music as fast as it can read it). |
280 | .TP |
c9c2ca27 |
281 | .B OUTPUTTYPE |
282 | Specifies the encoding format to output, as well as the default extension and |
283 | encoder. Defaults to "ogg". Valid settings are "ogg" (Ogg/Vorbis), "mp3" |
9f659ada |
284 | (MPEG-1 Audio Layer III), "flac" (Free Lossless Audio Codec), "spx" (Ogg/Speex) |
99d009fa |
285 | and "mpc" (MPP/MP+ (Musepack)). Values like "ogg,mp3" encode the tracks in |
286 | both Ogg/Vorbis and MP3 formats. |
81bc6204 |
287 | .br |
c9c2ca27 |
288 | For each value in OUTPUTTYPE, abcde expands a different process for encoding, |
289 | tagging and moving, so you can use the format placeholder, OUTPUT, to create |
290 | different subdirectories to hold the different types. The variable OUTPUT will |
9f659ada |
291 | be 'ogg', 'mp3', 'flac', 'spx' and/or 'mpc', depending on the OUTPUTTYPE you define. |
c9c2ca27 |
292 | For example |
81bc6204 |
293 | .br |
c9c2ca27 |
294 | OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}._${TRACKFILE}' |
295 | .TP |
81bc6204 |
296 | .B OUTPUTFORMAT |
297 | Specifies the format for completed Ogg/Vorbis, MP3, FLAC, Ogg/Speex or MPP/MP+ |
298 | (Musepack) filenames. |
299 | Variables are included |
300 | using standard shell syntax. Allowed variables are GENRE, ALBUMFILE, ARTISTFILE, |
301 | TRACKFILE, TRACKNUM, and YEAR. Default is |
302 | \'${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}-${TRACKFILE}\'. |
303 | Make sure to use single quotes around this variable. TRACKNUM is |
304 | automatically zero-padded, when the number of encoded tracks is higher than |
305 | 9. When lower, you can force with '-p' in the command line. |
306 | .TP |
c9c2ca27 |
307 | .B VAOUTPUTFORMAT |
308 | Just like OUTPUTFORMAT but for Various Artists discs. Default is whatever |
309 | OUTPUTFORMAT is set to. |
310 | .TP |
c9c2ca27 |
311 | .B MAXPROCS |
312 | Defines how many encoders to run at once. This makes for huge speedups |
313 | on SMP systems. You should run one encoder per CPU at once for maximum |
314 | efficiency, although more doesn't hurt very much. Set it "0" when using |
315 | mp3dist to avoid getting encoding processes in the local host. |
316 | .TP |
317 | .B LOWDISK |
318 | If set to y, conserves disk space by encoding tracks immediately after |
319 | reading them. This is substantially slower than normal operation but |
320 | requires several hundred MB less space to complete the encoding of an |
321 | entire CD. Use only if your system is low on space and cannot encode as |
322 | quickly as it can read. |
323 | .TP |
324 | .B BATCH |
325 | If set to y, enables batch mode normalization, which preserves relative |
326 | volume differences between tracks of an album. Also enables nogap encoding |
327 | when using the \'lame\' encoder. |
328 | .TP |
c9c2ca27 |
329 | .B PLAYLISTFORMAT |
330 | Specifies the format for completed playlist filenames. Works like the |
331 | OUTPUTFORMAT configuration variable. Default is |
332 | \'${ARTISTFILE}_\-_${ALBUMFILE}.m3u\'. |
333 | Make sure to use single quotes around this variable. |
334 | .TP |
335 | .B PLAYLISTDATAPREFIX |
336 | Specifies a prefix for filenames within a playlist. Useful for http |
337 | playlists, etc. |
338 | .TP |
99d009fa |
339 | .B DOSPLAYLIST |
340 | If set, the resulting playlist will have CR-LF line endings, needed by some |
341 | hardware-based players. |
342 | .TP |
c9c2ca27 |
343 | .B COMMENT |
344 | Specifies a comment to embed in the ID3 or Ogg comment field of each |
345 | finished track. Can be up to 28 characters long. Supports the same |
346 | syntax as OUTPUTFORMAT. Does not currently support ID3v2. |
347 | .TP |
348 | .B REMOTEHOSTS |
349 | Specifies a comma-delimited list of systems to use for remote encoding using |
350 | distmp3. Equivalent to -r. |
351 | .TP |
352 | .B mungefilename |
353 | mungefilename() is an abcde shell function that can be overridden via |
354 | abcde.conf. It takes CDDB data as $1 and outputs the resulting filename on |
355 | stdout. It defaults to eating control characters, apostrophes and |
356 | question marks, translating spaces and forward slashes to underscores, and |
357 | translating colons to an underscore and a hyphen. |
358 | .br |
359 | If you modify this function, it is probably a good idea to keep the forward |
360 | slash munging (UNIX cannot store a file with a '/' char in it) as well as |
361 | the control character munging (NULs can't be in a filename either, and |
362 | newlines and such in filenames are typically not desirable). |
363 | .TP |
7acef70b |
364 | .B mungegenre |
365 | mungegenre () is a shell function used to modify the $GENRE variable. As |
366 | a default action, it takes $GENRE as $1 and outputs the resulting value |
367 | to stdout converting all UPPERCASE characters to lowercase. |
368 | .TP |
369 | .B pre_read |
370 | pre_read () is a shell function which is executed before the CDROM is read |
371 | for the first time, during abcde execution. It can be used to close the CDROM |
372 | tray, to set its speed (via "setcd" or via "eject", if available) and other |
373 | preparation actions. The default function is empty. |
374 | .TP |
c9c2ca27 |
375 | .B EJECTCD |
376 | If set to "y", abcde will call eject(1) to eject the cdrom from the drive |
377 | after all tracks have been read. |
79e3928b |
378 | .TP |
379 | .B EXTRAVERBOSE |
380 | If set to "y", some operations which are usually now shown to the end user |
381 | are visible, such as CDDB queries. Usefull for initial debug and if your |
382 | network/CDDB server is slow. |
c9c2ca27 |
383 | .SH BACKEND TOOLS |
384 | abcde requires the following backend tools to work: |
385 | .TP |
386 | .B * |
99d009fa |
387 | An Ogg/Vorbis, MP3, FLAC, Ogg/Speex or MPP/MP+(Musepack) encoder (oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mppenc) |
c9c2ca27 |
388 | .TP |
389 | .B * |
390 | An audio CD reading utility (cdparanoia, cdda2wav, dagrab) |
391 | .TP |
392 | .B * |
393 | cd-discid, a CDDB DiscID reading program. |
394 | .TP |
395 | .B * |
396 | An HTTP retrieval program: wget, fetch (FreeBSD) or curl (Mac OS X, among others). |
397 | .TP |
398 | .B * |
399 | (for MP3s) id3 or id3v2, id3 v1 and v2 tagging programs. |
400 | .TP |
401 | .B * |
402 | (optional) distmp3, a client/server for distributed mp3 encoding. |
403 | .TP |
404 | .B * |
405 | (optional) normalize, a WAV file volume normalizer. |
406 | .SH "SEE ALSO" |
407 | .BR cdparanoia (1), |
408 | .BR cdda2wav (1), |
409 | .BR dagrab (1), |
72d7162b |
410 | .BR normalize-audio (1), |
c9c2ca27 |
411 | .BR oggenc (1), |
412 | .BR vorbize (1), |
413 | .BR flac (1), |
414 | .BR speexenc(1), |
99d009fa |
415 | .BR mppenc(1), |
c9c2ca27 |
416 | .BR id3 (1), |
417 | .BR wget (1), |
418 | .BR fetch (1), |
419 | .BR cd-discid (1), |
420 | .BR distmp3 (1), |
421 | .BR distmp3host (1), |
422 | .BR curl(1) |
9f659ada |
423 | .SH AUTHORS |
b7f1cc84 |
424 | Robert Woodcock <rcw@debian.org>, |
425 | Jesus Climent <jesus.climent@hispalinux.es> and contributions from many others. |