# Preferences - Audio Files - ID3

The Audio panel allows you to control settings common to all supported audio formats, specific to ID3 (MP3, AIFF, DFF, DFS, WAV) files, MPEG-4 (M4A, M4B, M4R, M4V, MP4) files, FLAC & OGG and APE (APE, WV) files.

## Settings Specific to ID3

Many fields have a language code which describes the language used in the context of the field. The language values are three character codes according to the ISO-639-2 specification. The value xxx may be used for don't care. Note that Apple Apps prefers the default of eng.

Tag information can be encoded in four different character sets:

> ISO-8859-1
>   Also known as Latin-1, this is an 8 bit character set. This is the default character set for many web browsers. It contains the original ASCII character set, English and most Western European characters.
> UTF-16
>   This is a 16 bit character set capable of containing 1,112,064 characters. The character encoding describes the byte order via a Byte Order Mark. This character set can describe any character you could possibly put into a tag, in any language. Some older applications may not be able to handle this encoding. The only downside to a 16 bit encoding is that it doubles the number of bytes required to store a string.
> UTF-16BE
>   This is the same character set as UTF-16 except that it is always encoded most significant byte first. If you are writing your files according to the ID3 v2.3 specification, this value will be treated as UTF-16.
> UTF-8
>   This is a variable width character set which has become the dominant character set used on the web today. It can display any possible unicode character and is efficient. This is the initial value as set by Yate. If you are writing your files according to the ID3 v2.3 specification, this value will be treated as UTF-16.

The above encoding values allow you to choose the text encoding that best serves your local. Typically, UTF-8 is the preferred setting as it supports most character representations. There are misbehaved applications which can only handle ISO-8859-1 characters and read the data as such, regardless of the encoding described in the frames. You may find that these applications are incorrectly representing some accented characters. Rather than changing the encoding setting to ISO-8859-1 for all frames, which limits the characters you can represent, you can select the ISO-8859-1 if possible option. The option will use the specified encoding where necessary, but if no data will be lost, a frame will be encoded as ISO-8859-1.

Yate allows you to store ratings in the audio files. Unfortunately, while the rating value can be any number in the range of 0-255 there is no real standard as to how to interpret the value. Internally, Yate always represents the rating as a number from 0-255, however it will read and write the values out in four possible different ways:

> Direct (0-5)
>   The value is strictly enforced as being in the range of 0-5. This is a one-to-one mapping to the number of displayed stars in the rating display.
> Apple Apps (0-100)
>   The value is strictly enforced as being in the range of 0-100. This is how Apple applications represents the rating value. Yate does not support half stars. 0-19 is no stars, 20-39 is one star, 40-59 is two stars, 60-79 is three stars, 80-99 is four stars and 100 is five stars. This format is always written out to MPEG-4 files, regardless of the setting.
> Full (0-255)
>   The full range of the value is used in determining the rating. The default mapping is 0-8 is no stars, 9-49 is one star, 50-113 is two stars, 114-167 is three stars, 168-218 is four stars and 219-255 is five stars.
> Direct*2 (0-10)
>   The value is strictly enforced as being in the range of 0-10. This is how JRiver Media Center represents MPEG-4 ratings.

Note that the choice of how you write out a rating value does not affect how ratings are exported to Apple applications. The appropriate transformation will take place regardless of your rating format choice.

By default, Yate writes mp3, aiff, dff, dsf and wav files according to the latest ID3 specification which is v2.4. While this specification has been around for a long time, since 2000, some older applications and Windows cannot read v2.4 files. You can elect to write the files according to the ID3 v2.3 specification. This option has individual settings for each file type utilizing ID3 tags. Note that the mp3 setting will affect mp2 files as well.

Certain older media players still have a reliance on the earliest, most simplistic, ID3 specification released in 1996. You can elect to write ID3v1 tags in addition to the v2.4 or v2.3 tag you have elected to write. The Write ID3v1 information (mp3 only) option should only be specified if you feel you have a need for it.

The ID3 v2.3 and v2.4 standards have the ability to mark the tag container as experimental. As the format changes are non deterministic, by default Yate will not load the files. You can choose to load the files ignoring any contained metadata. If you're feeling lucky you can choose to ignore the presence of the experimental indicator completely. It is recommended that you leave the Experimental indicator bit handling setting at its default value of Do Not Load the Files. If you see a load error for a particular file you can decide how to proceed. The usage of this bit is extremely rare. If a file is loaded and then written, the Experimental bit will always be cleared.

WAV files have an alternate method of storing an ISRC value outside the bounds of the ID3 metadata. If you wish to read and write this data (EBU Tech 3352) set the Process axml chunks for ISRC (WAV only) option. When set the out of bounds metadata will be read and written. If the two values differ, both will be displayed. Note that an incorrectly formatted ISRC value will not be written to the axml chunk. A loose validation of the ISRC field is performed based on individual character types and length (dash characters are ignored and removed).

WAV files have an alternate method of storing various tag items. These items are stored in a LIST-INFO chunk outside of any ID3 based chunk. To ensure maximum compatibility, Yate always reads and writes this information. The following LIST-INFO tags, if available, will be imported if they are not present in ID3 data: Album, Artist, Comment, Copyright, Genre, ISRC, Title, and Year. Any other LIST-INFO metadata is preserved in Unhandled Items. Note that Yate always prioritizes the ID3 data. There are no settings associated with this functionality.

WAV files have yet another alternate method of presenting metadata needed for the exchange of material between broadcasters. This information is contained in a bext chunk. Additional information can be found in BEXT Metadata.

There is some controversy as to whether the low level TXXX frames used to contain UDTIs can contain multiple values. In ID3v2.4 a null character (binary zero) is used to separate multiple fields. Yate always reads the fields correctly if a null character is used as the separator. By default Yate will support this encoding when writing files. If you wish, you can disable this behaviour by unchecking the Use nulls to separate multiple values in TXXX frames option. When unchecked, multi-value delimiter (;;;) sequences will be left unmodified when writing the fields. This option only applies when ID3v2.4 is used as the write format.

The ID3 specification states that each Text frame (this includes Artist, Album Artist, Genre, etc.) can only occur at most once in a file. It has been found that certain encoders ignore this rule. The Allow repeated Text frames option enables the reading and merging of the metadata on these technically invalid repeated frames.

Information of the Roon specific settings can be found in Roon Audio Settings.

Additional information:

Common Audio Settings

APE Audio Settings

MPEG-4 Audio Settings

FLAC/OGG Audio Settings

Roon Audio Settings