JACK(1)

πŸ“¦
version 4~git20260308.181666b Β· 3 versions
, in ubuntu stonking

omg bestie, welcome to JACK(1) β€” from the General Commands Manual, and she is literally that girl: rip and encode audio CDs with one command. Periodt. πŸ’…

🌸 NAME 🌸

Jack β€” rip and encode audio CDs with one command. No cap. πŸŽ€

✨ SYNOPSIS ✨

jack [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

Jack transforms your audio CDs to FLAC, MP3 or Ogg Vorbis files. She uses several helper programs in order to achieve things like ripping, encoding and ID3 tagging. Ripping is either done via cdparanoia (in which case the ripping status is displayed by Jack as well) or cdda2wav. Jack works with several encoders, namely: oggenc, flac, lame, and fdkaac. Any time during operation (and even when everything is finished and the original CD has been lost) you can let Jack look up the track names at metadata services like MusicBrainz.org, GnuDB.org or others and rename the tracks accordingly. ID3 tagging of MP3s (or insertion of equivalent comment fields in Ogg Vorbis files) is performed as well. ✨

If no lookup has been performed, Jack drops all files in a directory ~/jack/jack-xxxxxxxx, with xxxxxxxx representing the CD's CDDB/MusicBrainz disc ID. This directory is renamed by Jack when the appropriate information is known. 🩷

Most options like ripper, encoder, preferred metadata server, directory and MP3-filename format, etc. can be user-defined by changing the defaults in /etc/jackrc or by saving them to ~/.jack4rc. πŸ’–

While Jack is running, these keyboard commands are available:

  • q or Q β€” quit
  • p or P β€” disable ripping (for example, if you need the CD drive)
  • p or P (again) or c or C β€” resume ripping
  • e or E β€” pause/continue all encoders
  • r or R β€” pause/continue all rippers
  • ? β€” toggle the copyright/help box

πŸ’– OPTIONS πŸ’–

Different options need different data-types as arguments:

  • bool β€” can be "yes" or "no", like in --vbr=yes
  • string β€” can be anything, like in --rename-fmt "%n.%t"
  • int β€” an integer number, like in --bitrate 192 (or --bitrate=192 )
  • list β€” multiple strings, delimited by the final ";". Example: --guess-toc file1.mp3 file2.mp3 ... fileN.mp3;

Jack understands the following options:

  • --add-disambiguation β€” add disambiguation to the album title ✨
  • --albumart-file <string> β€” specific album art file to embed (default: 'None') πŸŽ€
  • --albumart-max-height <int> β€” maximum height when considering album art file (default: 1200)
  • --albumart-max-size <int> β€” maximum size when considering album art file (default: 1000000)
  • --albumart-max-width <int> β€” maximum width when considering album art file (default: 1200)
  • --albumart-min-height <int> β€” minimum height when considering album art file (default: 250)
  • --albumart-min-size <int> β€” minimum size when considering album art file (default: 5000)
  • --albumart-min-width <int> β€” minimum width when considering album art file (default: 250)
  • --albumart-providers <string> β€” list of sources for album art, currently 'coverartarchive', 'iTunes' or 'discogs'. The providers are processed in list order. If '|' is appended to a provider, the rest of the list is treated as fallbacks. (default: ['coverartarchive', 'iTunes', 'discogs']) 🌈
  • --albumart-recurse β€” recurse into subfolders when searching for local album art
  • --albumart-save-prefix <string> β€” prefix for saving existing embedded album art (default: 'jack.saved.')
  • --albumart-search <string> β€” list of regex patterns for matching local album art files (default: ['.*[Cc]over.*\.(jpg|jpeg|png)$', '.*[Ff]ront.*\.(jpg|jpeg|png)$', '^[Ff]older\.(jpg|jpeg|png)$', '^jack\.caa\.front.*\.jpg$', '^jack\.itunes.*\.jpg$', '^jack\.discogs.*\.jpg$']) πŸ¦‹
  • --append-year <string> β€” append this string to the directory name (default: '')
  • --bitrate, -b <int> β€” target bitrate in kbit/s (default: 160)
  • --caa-albumart-prefix <string> β€” prefix for saving fetched album art files from coverartarchive (default: 'jack.caa.')
  • --caa-albumart-sizes <string> β€” list of album art sizes to download from coverartarchive: 'original', 'small', 'large', '250', '500' or '1200'. (default: ['original', 'large'])
  • --caa-albumart-types <string> β€” download these album arts from coverartarchive ('front' and/or 'back') (default: ['front'])
  • --char-filter <string> β€” convert file names using a Python method (default: '')
  • --charset <string> β€” charset of filenames (defaults to your locale). 🌸
  • --check-toc, -c β€” compare TOC-file and CD-TOC, then exit. Jack caches the TOC of a CD in a file ("jack.toc"). If you want to know if the inserted CD matches the TOC-file in the current directory, use this option. πŸ”
  • --claim-dir, -C β€” rename directories even if they were not created by Jack.
  • --cont-failed-query β€” continue without metadata if query fails.
  • --create-dirs, --no-create-dirs, -D <bool> β€” tells Jack to create sub-directories in which Jack puts all the files for the current CD. If no metadata is available, i.e. when not using -Q , these directories will be named "jack-xxxxxxxx" where "xxxxxxxx" stands for the CD's ID. Otherwise dir_template (see above) will be used. (default: on)
  • --debug β€” show debug information.
  • --debug-write β€” write debug information to a file.
  • --device <string> β€” The device name of your CD-ROM drive. (default: /dev/cdrom)
  • --dir-multi-cd-template <string> β€” dir_template, if album consists of multiple discs (default: '%a/%l (CD %d)')
  • --dir-multi-cd-unknown-number-template <string> β€” dir_template, if album consists of multiple discs, and the number of discs is unknown (default: '%a/%l (CD %d)')
  • --dir-template <string> β€” if directories are renamed, this is the format used (default: '%a/%l')
  • --dir-titled-cd-template <string> β€” dir_template, if album consists of multiple discs, and the current disc has a title (default: '%a/%l (CD %d: %t)')
  • --dir-titled-cd-unknown-number-template <string> β€” dir_template, if album consists of an unknown number of multiple discs, and the current disc has a title (default: '%a/%l (CD %d: %t)')
  • --discogs-albumart-prefix <string> β€” prefix for saving fetched discogs album art files (default: 'jack.discogs.')
  • --discogs-albumart-token <string> β€” discogs personal authentication token
  • --discogs-albumart-types <string> β€” download these album arts from discogs ('primary' and/or 'secondary') (default: ['primary'])
  • --dont-work, -d <bool> β€” do not perform DAE, encoding, tagging or renaming. This may be useful if you only want to do a metadata query, e.g. while another Jack is running.
  • --download-progress-interval <int> β€” interval in seconds for showing progress of slow downloads, zero is no progress (default: 5)
  • --edit-metadata <bool> β€” open an editor to change the CDDB information which has been obtained previously (only useful with -Q).
  • --embed-albumart <bool> β€” embed album art
  • --encoder-name, -E <string> β€” use which encoder (default: 'oggenc')
  • -e, --encoders <int> β€” encode how many files in parallel. If you have a SMP machine or simply want to stress your system, you can have Jack encode several files at once. (default: 1)
  • --exec, -x <string> β€” run predefined command when finished.
  • --extt-is-artist <bool> β€” the artist is contained in the EXTT fields. The EXTT fields are lines in the metadata file which contain additional data for each track. As it is the submitting user's choice what to use them for, Jack cannot determine by itself what they were intended for. You have to provide this information.
  • --extt-is-comment β€” a track comment is contained in the EXTT fields.
  • --extt-is-title β€” the track title is contained in the EXTT fields.
  • --fetch-albumart <bool> β€” download album art while querying
  • --file-artist <string> β€” which metadata artist name to use for filenames (default: 'as-in-mb')
  • --force <bool> β€” do not ask. Like when deleting incomplete files.
  • --from-image, -F <string> β€” read audio data from an image file. Like --from-tocfile, but the image itself is specified instead of the TOC-file. If you do not have a TOC-file (or do not specify a TOC-file), the TOC is read from the CD itself.
  • --from-tocfile, -f <string> β€” rip from a CD image created by cdrdao on harddisk. The specified TOC-file contains the name of the image file. Use --from-image if Jack cannot find the image file.
  • --genre, -G <string> β€” overrule genre from metadata.
  • --get <string> β€” show value of a config option
  • --guess-toc, -g <list> β€” make up a TOC from the MP3 file given in mp3_files. Format is track_01.mp3 ... track_nn.mp3 ; Note that the trailing " ; " is only necessary if you want to append more options to your command line. You can use it to do a metadata query based on MP3s alone - no need for the CD. Very useful if you have no idea which CD the MP3s are from. The MP3s must be given in the same order as they were on their CD. The generated TOC file is similar, but not identical to the TOC of the CD - do not submit these!
  • --help, -h β€” show summary of options.
  • --itunes-albumart-country <string> β€” two letter country code of iTunes store to query (default: 'us')
  • --itunes-albumart-limit <int> β€” limit number of matches when querying for iTunes album art, zero is no limit (default: 1)
  • --itunes-albumart-prefix <string> β€” prefix for saving fetched iTunes album art files (default: 'jack.itunes.')
  • --itunes-albumart-sizes <string> β€” list of album art sizes to download from iTunes: 'thumb', 'standard' or 'high' (default: ['standard', 'high'])
  • --keep-wavs, -k <bool> β€” do not delete WAVs after encoding them.
  • --longhelp (<string>) β€” all commandline switches, some have additional information.
  • --lookup <bool> β€” start a browser and look up the CD.
  • --max-load <float> β€” only start new encoders if your system's load is below the specified value. /proc/loadavg must be readable by you for this to work. (default: 10.0)
  • --multi-mode <bool> β€” try to query metadata servers for all directories in searchdirs which have no metadata.
  • --nice, -n <int> β€” nice-level with which the encoders are started. (default: 12)
  • --no-albumart-ignorecase β€” nope, do NOT ignore case while hunting for local album art πŸ’…
  • --no-usage-win β€” no help screen popping up while it's running, we're busy bestie
  • --only-dae, -O β€” only spit out WAVs, nothing else. This lowkey implies --keep-wavs (default: off) ✨
  • --otf <bool> β€” "on-the-fly" mode, and it's giving efficiency. Only works on some encoders/rippers. No WAVs get made at all β€” the ripper's output gets piped straight through the encoder. (default: no) πŸ¦‹
  • --overwrite, -o <bool> β€” overwrite files that already exist, aka stop checking whether the WAVs or the encoded file look like they're already fine. Use this when you know something got messed up last time. (default: off) πŸ’€
  • --overwrite-albumart <string> β€” do we overwrite album art files that are already sitting there? Your choices are 'always', 'never' or 'conditional' (default: 'conditional')
  • --pregap-name <string> β€” the WAV filename stub to save the track 1 pregap into, but only if that pregap is at least 10 seconds long. There could be a hidden track in there πŸ‘€ Right now this only works when you're reading from a disc image file (default: 'None')
  • --quality <float> β€” VBR encoding quality. -1 is the lowest, 10 is the highest (default: 6). You can pass a float too, fancy ✨
  • --query, -q <string> β€” do the metadata query once everything else is done. Super useful if Jack was run before without a metadata query. And if all the tracks are done you don't even need a CD in the drive, because the TOC is cached by Jack πŸŽ€ After ripping and encoding finish, Jack will rename the files and tag them.
  • --query-if-needed <bool> β€” just like --query-now, except it only fires if the metadata hasn't been successfully queried before.
  • --query-now, -Q β€” do the metadata query right at startup. Use this when you're online at the moment you launch Jack. Heads up: the query may need user interaction. After ripping and encoding finish, Jack will rename the files and tag them πŸ’–
  • --read-ahead, -a <int> β€” how many WAVs to read in advance. At most read_ahead + num_encoders WAVs get ripped before a track has completely been encoded. (default: 99)
  • --readme β€” export README.md to the given file.
  • --refresh-metadata β€” forget all about the choices you made in previous queries, we're starting fresh 🧚
  • --remove-files β€” have Jack remove its own temp jack.*-files. Be careful β€” do not delete them too early! ⚠️
  • --rename, -R β€” rename and tag files according to the metadata file. On startup, Jack creates a blank metadata entry file (unless --query-now is used β€” then the file gets queried from your metadata server instead). If you've edited its contents (say, because the CD was unknown to the metadata service) and you want your MP3s renamed and tagged to match, use this option. Give it all the other options it needs too, like --tracks, --encoder-name, etc. 🫢
  • --rename-dir, --no-rename-dir <bool> β€” rename the directory as well. (default: rename)
  • --rename-fmt <string> β€” the format for normal files. (default: '%a - %l - %n - %t')
  • --rename-fmt-va <string> β€” the format for Various Artists files. (default: '%l - %n - %a - %t')
  • --rename-num <string> β€” the format of the track number (%n, printf() style) used when renaming files (default: '%02d')
  • --reorder, -r <bool> β€” optimize the track order for disk space. This can save you some peak disk space during encoding, which might make it possible to do a CD that would otherwise fail to encode. Main character problem-solving energy honestly πŸ‘‘
  • --replacement-chars <list> β€” unusable chars get swapped out for the corresponding list item (default: ['%', ''])
  • --ripper <string> β€” which program to use for extracting the audio data (default: 'cdparanoia').
  • --save β€” save options to the ~/.jack4rc file and exit.
  • --scan-dirs <int> β€” scan this many levels down from the current working directory looking for a matching TOC-file (0 to disable it, default: 2).
  • --search <list> β€” add these directories to the list of directories searched when looking for the workdir (default: '.').
  • --server <string> β€” which metadata service to use. Do not forget to set your HTTP proxy. Currently either "gnudb" or "musicbrainz" (default: musicbrainz).
  • --set-dae-tag β€” set DAE info tags.
  • --show-albumart β€” show the album art that's been embedded, opening it in an external viewer ✨
  • --silent-mode <bool> β€” be quiet (no screen output). shhh 🀫
  • --space, -s <int> β€” forcibly set the usable disk space, in bytes. This lets you cap how much disk space Jack uses β€” maybe you need some for something else? Be careful though: set it too high or too low and ripping and encoding will probably fail πŸ’€ The default is to look at how much is free and use that value.
  • --swab, --no-swab, -S <bool> β€” swap byte order from an image file. Since cdrdao momentarily only outputs "raw" .cdr files, you quite likely want to swap that byte order. Try this option if your WAVs and encoded files contain nothing but noise. This is on by default, because cdrdao currently generates .cdr files that are "wrong". πŸ™ˆ
  • --todo β€” print what would be done and exit. A little preview, a little vibe check.
  • --tracks, -t <string> β€” limit ripping and encoding to the specified tracks, comma-separated. Ranges work too; 5-9 is equivalent to 5,6,7,8,9; 12- is like specifying track 12,...,last_track. The default is to process the whole CD.
  • --undo-rename, -u <bool> β€” undo file renaming and exit. If you don't like how Jack renamed your files, use this to restore the previous state. Several levels of undo are possible. Note that ID3 tags are not restored. 😭
  • --unusable-chars <list> β€” characters which cannot be used in filenames (default: '/').
  • --upd-progress β€” have Jack re-create its temp files. Use this if you deleted them too early πŸ™ˆ
  • --update-metadata, -U β€” update the metadata info and exit.
  • --usage-win <bool> β€” show the help screen while running.
  • --various <bool> β€” when parsing metadata, Jack assumes that if the disc artist is set to "Various", the track titles have the format "[artist] - [title]". If the disc title is set to something else and you still want that behaviour, use --various.
  • --various-swap β€” exchange artist and title. So many metadata entries have them backwards, it's honestly embarrassing πŸ™„
  • --vbr, --no-vbr, -v <bool> β€” generate variable bitrate files, only on encoders which support it. (default: no).
  • --wait <bool> β€” wait for a key press before quitting.
  • --workdir, -w <string> β€” where to create directories and put the files.
  • --write-m3u β€” create a playlist in .m3u format. Heads up: this feature is experimental πŸ§ͺ
  • --year, -Y <int> β€” overrule the year from metadata (0=do not set)

🌈 EXAMPLES 🌈

Insert a CD, fire up Jack:

jack

Now watch it work, bestie, it's so satisfying. After it's finished, you have these files on your HD: track_01.mp3, track_02.mp3, ..., track_nn.mp3 plus jack.toc, jack.freedb, jack.progress. The last three store the state Jack is in, so it can resume work when it gets interrupted. Very demure, very mindful πŸ’…

Jack will create a directory called jack-xxxxxxxx for you, and that's where it stores all the files for the CD whose id is xxxxxxxx. After a metadata query this directory gets renamed to something human-readable, like "Artist - Title" ✨

When Jack is interrupted, call it again using the same command line as before to resume work, in this case:

jack

Now let us try a metadata query:

jack -q

If the query is successful the files will be renamed to something more readable and will be tagged accordingly using ID3 or Vorbis tags. The file jack.freedb will contain the queried metadata entry, and the original file will be backed up as jack.freedb.bak.

You can use the --rename-fmt option in order to specify the format of the name which will be given to your audio tracks. A list of valid options can be found below. You may also want to specify a set of characters which are not usable and should be replaced. For example, on Unix systems the slash (/) should most certainly be replaced with something else. The VFAT filesystem also does not support double quotes ("). In order to replace such characters, you can specify the options unusable_chars together with replacement_chars. For example,

jack -Q --rename-fmt "%n-%t" --unusable-chars A I ;
--replacement-chars a i ;

will query the metadata server, rip and encode all tracks of the CD and save the files in a format which will contain the track number and the title. All occurrences of the letters A and I will be replaced with their lower-case versions. These options can also be put in one's configuration file using the following format:

unusable_chars:[' ', '/']
replacement_chars:['_', '_']

This will replace whitespace and slashes with underscores. If you want to convert all characters to lower-case, you do not have to manually specify all of them but can use the following option instead:

char_filter:.lower()

All in one: query, rip, encode, cleanup:

jack -Q --remove-files

Editing / normalizing / stripping the WAV files before encoding:

jack -O --remove-files ; gnoise *wav ; jack -g *wav ; jack

Just replace gnoise by the operation you'd like to perform.


🌸 ENVIRONMENT VARIABLES 🌸

There are several environment variables which can be used in Jack's exec hooks:

  • JACK_BASE_DIR β€” lists Jack's base directory in which files are stored.
  • JACK_CUR_DIR β€” lists the current directory of Jack in which files of the current album are put.
  • JACK_JUST_ENCODED β€” lists all track names which have just been encoded.
  • JACK_JUST_RIPPED β€” lists all track names which have just been ripped.

πŸŽ€ FORMAT STRINGS πŸŽ€

  • %n β€” Track number
  • %a β€” Artist
  • %t β€” Track title
  • %l β€” Album title
  • %y β€” Album release year
  • %g β€” Album genre
  • %d β€” Disc number

πŸ¦‹ FILES πŸ¦‹

  • /etc/jackrc β€” Site-wide configuration file.
  • ~/.jack4rc β€” User-specific configuration file. Use the --save option to save your configuration to this file.

πŸ‘‘ AUTHOR πŸ‘‘

Arne Zellentin <zarne@users.sf.net> is the author of Jack. slay fr fr 🫢


πŸ’– SEE ALSO πŸ’–

cdparanoia(1), cdda2wav(1), flac(1), oggenc(1) and lame(1)


and that's a wrap on the whole page bestie, no notes πŸ’… this one's from January 2026 and it's JACK(1), iconic as always, periodt πŸŽ€βœ¨

πŸ“¦ where this page comes from