The Salty Bible
Tip
Salty's workflow utilizes the following projects:
- tuuba for checking library files against consistency rules.
- Picard for semi-automated tagging.
- ami for enhanced (scripting) functionality.
- Picard Script
- Picard Naming Script
- Mp3tag for manual tagging.
- CUETools for generating AccurateRip logs and splitting range rips.
1. Organization
1.1. Use a meaningful and consistent library structure
-
Including the date at the beginning allows sorting releases chronologically and helps identify releases at a glance.
-
Including the catalog number or barcode allows identifying releases at a glance. When both are available the catalog number is prioritized because it is easier to differentiate at a glance.
-
Grouping tracks into folders by disc subtitle makes it possible to have different covers for each disc in a box set without embedding.
-
Replacing disallowed characters with "_" ensures a folder or file with an empty name is not created, minimizes loss of information. The underscore character is a good replacement candidate due to it being easy to distinguish and type. Disallowed characters are not replaced with similar looking unicode variants because that will end up producing misleading output.
-
The "." character is in the list of disallowed characters because folders cannot end with it on Windows.
-
Audio quality is not included because handling releases with multiple audio formats significantly increases the complexity of format scripts.
-
Rip log score is not included because there are multiple ways to score a log and computing a score significantly increases the complexity of format scripts.
-
Releases are not grouped by genre as it is subjective and a release can belong to many genres.
-
Do not replace spaces with underscores as it makes the path hard to read and results in loss of information when disallowed characters are already replaced with "_".
-
Keeping more information in the path helps users find the releases when sharing on P2P platforms.
Example track path from Grand Theft Auto: San Andreas Official Soundtrack - Box Set:
1 | |
Example track path from Animal CD Vol. 1:
1 | |
1.2. Lowercase all file extensions
All file extensions should be lowercased. Consistency helps library management.
1.3. Generate a fresh AccurateRip log for all ingested releases with a rip log
AccurateRip logs (.accurip) generated by CueTools are info files about the audio tracks of a CD rip. From the log it is possible to determine if the audio on disk matches other rips of the CD performed around the world. Both the CueTools and AccurateRip database are consulted for this info.
Only EAC rip logs contain data from both of the aforementioned sources while both XLD and Whipper only support AccurateRip, which also has fewer data entries than CueTools in general. In addition, as a considerable amount of shared CD rips are performed near their release date, the rip log may not have as trustworthy information as an AccurateRip log with the freshly fetched data. Furthermore, it is also possible to determine whether the audio files belong to the EAC, XLD or Whipper rip log included with the tracks.
1.4. Use proper physically identifiable names for scans
Sequential scan names like 1.png, 2.png, etc are confusing for people who are not physically familiar with the specific release or packaging type, same goes for owners coming back after having lost their physical copy.
-
To label scans of a series of items (e.g. inserts, booklet pages, booklets themselves, etc), add
Nto the scan name, where N is the number of the scan. However, if there is only one scan, there is no need to add the numerical suffix, since it is understood that there is only one item. -
If the front and back of an item are included in separate files, add
FrontorBackto the scan name. However, if only the front scan is present, there is no need to add the side suffix, since it is understood that the scan is of the primary visual asset, which is the front of the item. -
If both the front and back of an item are included in a single file, add
Outsideto the scan name. The same principle can be applied to a scan of the inside of an item, whereInsideis added to the scan name. -
If there are multiple scans of the same surface, add descriptive terms (e.g.
with Sticker,with Obi, etc) to the scan name to differentiate them.
Possible scan names (excluding suffixes) and their physical counterparts:
| Scan Name | Physical Counterpart |
|---|---|
Back |
Back of a disc case or a record sleeve, sometimes the spine is also included in this scan |
Book Page |
Page of a book |
Book |
A set of pages that have been fastened together inside a cover to be read |
Booklet Page |
Page of a booklet |
Booklet |
Thin book with a small number of pages and a paper cover |
Card |
Piece of cardboard, including playing cards |
Disc |
Optical disc, use Matrix for the back of the disc |
Front |
Front of a disc case or a record sleeve |
Insert |
Piece of paper, often an announcement or advertisement |
Matrix |
Back of an optical disc |
Obi |
Piece of paper wrapped around the spine of Japanese CDs |
Postcard |
Postcard |
Quadfold |
Booklet that folds out four times |
Record |
Vinyl, shellac or acetate record, use Front and Back for side A and B |
Slipcase Spine |
Spine of a slipcase, same concept as spine |
Slipcase |
A box with an opening for the contents to slide out of, also has a Top and Bottom |
Spine |
Side strip of a case, often with brief info about the release and the only visible part when the case is stored in a shelf |
Sticker |
Adhesive piece of paper |
Tray |
Inside of a case with the tray and its liner, sometimes with Disc or with Discs |
Trifold |
Booklet that folded out three times |
1.5. Rename .cue, .log and .accurip files to CD1, CD2, etc
Short and concise names make it easier to identify the file type and avoid having problems with the path length limit.
1.6. Delete .m3u, .m3u8, foo_dr.txt and audiochecker.log files
These files provide no useful information about a release.
1.7. Use short variants for media types with multiple file extension variants
Use short file extensions for all .jpg and .tif files. Consistency helps library management.
1.8. Do not pick apart or merge releases
Releases should be considered inseparable. Deleting, adding or swapping tracks of a release compromises its integrity: makes it unverifiable as a whole and its album level metadata not match what is actually stored on disk.
1.9. Split range rips
A range rip is a single audio file containing all tracks from a disc or release appended one after another. These should always be split into multiple audio files, as they are very difficult to tag and unsupported by most music players. Splitting range rips is a lossless process when done with trusted tools such as CUETools.
1.10. All recordings belong to a release
Recordings without an official streaming or physical release such as YouTube music videos and unofficial remixes shared via alternate channels should always be treated as their own release. If a recording is not part of an album release, it is a single release. All releases are handled according to organization rules.
2. Formats
2.1. Encode all lossless PCM audio using libFLAC with the highest compression level
FLAC is a free, open source, well documented and broadly supported lossless audio codec. The most recent version of libFLAC, which is the reference implementation for the codec, provides the highest compression ratio when compared to earlier versions of libFLAC and the FFMPEG encoder.
2.2. Do not encode lossless to lossy or lossy to lossless
Converting from lossless to lossy reduces the quality and undermines the verifiability of the release, while converting from lossy to lossless offers no benefit and is misleading. The only scenario in which converting from lossy to lossless is acceptable is when the source uses a rare and generally unsupported lossy codec.
2.3. Do not resample audio files
Resampling audio is a lossy process.
2.4. Keep covers square if feasible
If a cover is within about 5% of 1.0 aspect ratio, crop it to be square if at all possible. Sometimes covers include erroneous white borders, which should not be counted towards the aspect ratio and fixed by cropping.
2.5. Keep the highest resolution cover available
Keeping high resolution album covers ensures that they will remain visually clear as monitor resolutions continue to increase.
2.6. Prefer 100%LOG CD rips over low quality WEB rips
A properly logged CD rip has more verification value than a 16bit 44kHz WEB rip. Additionally, it is not worth sacrificing storage space for hires WEB rips that do not make effective use of the available bit depth and spectrum limits or originate from a low quality source.
2.7. Avoid audio above 96kHz
The storage requirements at such high resolutions are too high to be practical.
2.8. Encode lossless scans to JPEG XL
JPEG XL is currently the most space efficient lossless image codec. JPEG XL also supports losslessly recompressing JPEG images. Keeping all scans in the same format also makes it easier to manage them.
2.9. Do not transliterate text
Languages should be written in their native script as loss of nuance and errors are very common in transliteration. Sort tags should be used for transliterations.
2.10. Do not alter audio files
Do not edit, normalize, equalize, compress, amplify, fade or otherwise destructively and irreversably alter audio files.
2.12. Avoid rips of analog media
Analog audio often has noticable artifacts due to the nature of the ripping process. As no two analog rips are the same the rips also cannot feasibly be compared for accuracy.
2.13 Avoid lossy audio
Lossy audio cannot be reencoded without further loss (for example, when a new more efficient encoding comes out) and, depending on the style of music, sound noticeably worse than lossless releases. It also cannot be verified against CD rip logs or rip databases such as CUETools and AccurateRip. Once audio has been encoded to a lossy format, the original data is gone and can never be recovered if needed in the future. The copy in the main music library should therefore be lossless, with lossy OPUS encodes distributed to mobile devices if needed.
2.14. Avoid MQA audio
MQA is a proprietary lossy audio codec misleadingly stored in a PCM container such as FLAC, ALAC, etc.
3. Tags
3.1. Properly utilize audio tags
Filling metadata helps music players organize and display artists, releases and recordings in a meaningful way. Due to the inherent limitations of what tags can reasonably convey, it is important to carefully consider what info is stored and how music players will preceive it.
Descriptions of recommended tags and their utility:
| Tag Name | Description |
|---|---|
ALBUM |
Album scoped, single-valued
Title of the specific edition of the release with an edition suffix where applicable. |
ALBUMARTIST |
Album scoped, single-valued
All album artists, except featured artists, with all join phrases as a single value. This ensures file explorer and music players will group releases under the main artist ignoring ephemeral artist pairups. |
ARTIST |
Track scoped, single-valued
All track artists with all join phrases as a single value. |
BARCODE |
Album scoped, multi-valued
Release specific 14, 13, 12, 8 or 6 digit UPC/EAN barcodes. Usually found on the back of the case. Used to identify the exact edition of the release across streaming services and stores. |
CATALOGNUMBER |
Album scoped, multi-valued
Release specific catalog numbers. Usually found on the side of the case or on the disc itself. Used to identify the exact edition of the release across streaming services and stores. |
COMPOSER |
Track scoped, multi-valued
All non-fictional composers as multiple values. Especially important for classical music. |
DATE |
Album scoped, single-valued
Release date of the specific edition in "YYYY-MM-DD", "YYYY-MM" or "YYYY" format, depending on what parts are known. This date format is universally understood with no date and month ambiguity. |
DISCNUMBER |
Disc scoped, single-valued
Number of the disc, not padded. |
DISCSUBTITLE |
Disc scoped, single-valued
Mainly used for box sets where each disc represents a different album or named collection of tracks. For example the Grand Theft Auto: San Andreas Official Soundtrack - Box Set release with each disc representing a radio station. |
DISCTOTALTOTALDISCS |
Album scoped, single-valued
Total number of discs in the release, not padded. Either one of these tags is fine, ideally both for compatibility and consistency as some taggers also always write both. |
GENRE |
Track scoped, multi-valued
It is heavily recommended to source genres from Rate Your Music as they are most often the most accurate. |
ISRC |
Track scoped, multi-valued
Used to identify the exact recording across streaming services and stores. |
MEDIA |
Album scoped, multi-valued
All mediums contained in the specific release as multiple values. Example values: Scoped to an album to allow searching for releases containing specific mediums. As music players often do not support directly including video files in a library, this makes it possible to find releases that include blurays. |
MUSICBRAINZ_*ID |
Various scopes, multi-valued
Associates files with a concrete data source in the form of MusicBrainz database entries. MusicBrainz contains extensive data that is typically not stored in tags due to its complex nature. Software can use these MusicBrainz ID tags to fetch additional information for display, management or scrobbling purpose. |
ORIGINALDATE |
Album scoped, single-valued
Original release date in "YYYY-MM-DD", "YYYY-MM" or "YYYY" format, depending on what parts are known. Should be the release date of the oldest edition of the release aka the first release in a release group. |
RELEASETYPE |
Album scoped, multi-valued
Example values: |
SOURCE |
Album scoped, single-valued
Name of the streaming service or store where the files stored on disk are from. Only used for digital releases as tracking this for physical releases is infeasible especially for third-party rips. |
TITLE |
Track scoped, single-valued
Title of a track. |
TRACKNUMBER |
Track scoped, single-valued
Number of a track on a medium, not padded. |
TRACKTOTALTOTALTRACKS |
Disc scoped, single-valued
Total count of tracks on a medium, not padded. Either one of these tags is fine, ideally both for compatibility and consistency as some taggers also always write both. |
URL |
Album scoped, single-valued
Address on the streaming service or store where the files stored on disk originate from in the shortest form possible. Principles:
Examples: |
3.2. Always use "Various Artists" for various artists
This way all releases with various artists will be consistent and grouped together.
3.3. Do not embed images
Embedding images into each audio file of a release uses more space than storing a single image file in the folder. Additionally, embedded images are usually of lower quality to reduce space usage, despite occupying approximately the same amount of space as a single high-quality image file.
3.4. Do not include featured artists in track titles
Artists are not part of the track title. See MusicBrainz Artist Credits Style Guide.
3.5. Do not use fancy Unicode symbols for common punctuation marks
Using Unicode variants of common symbols makes management and search tasks more challenging due to the characters looking extremely similar and not always being fuzzy matched to their common counterparts.
Replacement map from fancy Unicode symbols to ASCII:
| Name | From | To |
|---|---|---|
| No-Break Space | ◌ |
|
| Left Single Quotation Mark | ‘ |
' |
| Right Single Quotation Mark | ’ |
' |
| Single Low-9 Quotation Mark | ‚ |
, |
| Single High-Reversed-9 Quotation Mark | ‛ |
' |
| Left Double Quotation Mark | “ |
" |
| Right Double Quotation Mark | ” |
" |
| Double Low-9 Quotation Mark | „ |
" |
| Double High-Reversed-9 Quotation Mark | ‟ |
" |
| Hyphen | ‐ |
- |
| Non-Breaking Hyphen | ‑ |
- |
| En Dash | – |
- |
| Em Dash | — |
- |
| Figure Dash | ‒ |
- |
| Horizontal Bar | ― |
- |
| One Dot Leader | ․ |
. |
| Two Dot Leader | ‥ |
.. |
| Horizontal Ellipsis | … |
... |
| Double Exclamation Mark | ‼ |
!! |
| Double Question Mark | ⁇ |
?? |
| Fraction Slash | ⁄ |
/ |
| Division Slash | ∕ |
/ |
| Wave Dash | 〜 |
~ |
| Fullwidth Tilde | ~ |
~ |
| Fullwidth Left Parenthesis | ( |
( |
| Fullwidth Right Parenthesis | ) |
) |
| Fullwidth Left Square Bracket | [ |
[ |
| Fullwidth Right Square Bracket | ] |
] |
| Fullwidth Less-Than Sign | < |
< |
| Fullwidth Greater-Than Sign | > |
> |
| Fullwidth Colon | : |
: |
| Fullwidth Solidus | / |
/ |
| Fullwidth Question Mark | ? |
? |
| Fullwidth Exclamation Mark | ! |
! |
| Fullwidth Semicolon | ; |
; |
| Fullwidth Comma | , |
, |
| Ideographic Space | |
|
| Fullwidth Quotation Mark | " |
" |
| Fullwidth Number Sign | # |
# |
| Fullwidth Dollar Sign | $ |
$ |
| Fullwidth Percent Sign | % |
% |
| Fullwidth Ampersand | & |
& |
| Fullwidth Apostrophe | ' |
' |
| Fullwidth Asterisk | * |
* |
| Fullwidth Plus Sign | + |
+ |
| Fullwidth Hyphen-Minus | - |
- |
| Fullwidth Full Stop | . |
. |
| Fullwidth Equals Sign | = |
= |
| Fullwidth Commercial At | @ |
@ |
| Fullwidth Reverse Solidus | \ |
\ |
| Fullwidth Circumflex Accent | ^ |
^ |
| Fullwidth Low Line | _ |
_ |
| Fullwidth Left Curly Bracket | { |
{ |
| Fullwidth Vertical Line | | |
\| |
| Fullwidth Right Curly Bracket | } |
} |
| Minus Sign | − |
- |
| Prime | ′ |
' |
| Double Prime | ″ |
" |
| Fullwidth Numbers | 0 1 2 3 4 5 6 7 8 9 |
0 1 2 3 4 5 6 7 8 9 |
| Fullwidth Uppercase Letters | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
a b c d e f g h i j k l m n o p q r s t u v w x y z |
| Fullwidth Lowercase Letters | a b c d e f g h i j k l m n o p q r s t u v w x y z |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| Minus Sign | − |
- |
| Hyphen Bullet | ⁃ |
- |
| Two-Em Dash | ⸺ |
- |
| Three-Em Dash | ⸻ |
- |
| Small Em Dash | ﹘ |
- |
| Small Hyphen-Minus | ﹣ |
- |
| Modifier Letter Apostrophe | ʼ |
' |
| Modifier Letter Prime | ʹ |
' |
| Acute Accent | ´ |
' |
| Grave Accent | ` |
' |
3.6. Do not use artist sort names as artist names
Family names, honorary titles, definite articles, "The", "DJ", etc can only be moved to the end in sort tags like ARTISTSORT and ALBUMARTISTSORT as those tags are specifically meant for customizing values to ensure a specific sort order. Everywhere else the artist should be left as it is depicted in official sources. See MusicBrainz Artist Sort Name Style Guide.
Updated 2026-06-27