# MusicBrainz Earliest Recording

This statement searches MusicBrainz for the earliest release date of a track. The statement either uses a track's Title and Artist metadata for the search or uses specified values. When Title and Artist are specified, the statement is only executed once regardless of the current execution mode (stepwise or grouped).

Please read this:

> By default up to a 100 potential matches are downloaded from MusicBrainz. If you enable the Accumulate all possible matches setting, multiple requests will be made to MusicBrainz to download every potential match. This may be slow as access to MusicBrainz is rate limited. The song Miss You by The Rolling Stones has 168,500 potential matches! This will take at best case ~28 minutes. Unfortunately the only way to ensure that the earliest date is extracted is by downloading all available matches. If you have a lot of tracks to process it may pay to do it in the Batch Processor.
> When not batch processing the main window status bar displays the progress. When a track is being processed the total number of pages to be fetched is displayed. Each fetched page can describe 100 recordings. These pages are fetched at a rate of one/second. If you decide you do not want to wait for a particular track, select File>Cancel or the toolbar Cancel button. The typical cancel process is intercepted and a panel is displayed. If you select Skip, no further pages will be fetched for the current track. If you select Continue, the panel will be dismissed and fetching will proceed. If you select Cancel, the entire process will be cancelled. You can optionally check the Disable accumulate all possible matches option. If you do so all subsequent tracks will only fetch a single page. Note that in this case Continue and Skip are effectively the same.

When testing for metadata matches, Yate uses fuzzy comparisons. You can set the threshold for each of the Title and Artist attempts. 0 implies accept all matches (not a good idea) while 100 implies require an exact match.

Titles often have qualifiers. In order to improve the fuzzy matching you can optionally specify contains for Title matching. When contains is chosen and the fuzzy matching fails, a test will also be performed to see the if source metadata is contained in the downloaded metadata or vice versa. A contains test is always case and diacritic insensitive.

A recording on MusicBrainz can be associated with multiple artists. An attempt is made to match each artist by decomposing the source artist metadata. If a track's Artist field or the supplied Artist value contains the multi-value delimiter it will be used to decompose the field. If a multi value delimiter is not located the Delimiters field will be used to determine which sequences are artist delimiters. After unescaping, delimiter sequences must be separated by newline (\n) or default list delimiter (\~) sequences. Spaces are significant before or after leading or trailing non alphanumeric characters. When a delimiter begins or ends with an alphanumeric character, Yate ensures that word matching occurs. A Comma followed by a space is a different delimiter than a comma. Sequences of more than one space character are always treated as a single space. If multiple spaces are found adjacent to each other, they will be ignored. Delimiter sequences are case and diacritic insensitive. If the delimiters field is empty, unless the source artist metadata contains a multi-value delimiter, the entire source string will be treated as a single artist.

> eg: Allow comma, ampersand, featuring, feat. and ft.
> ,\~&\~featuring\~feat\~ft.

Note that you can insert the delimiters configured in Preferences - Lists - Advanced Settings by using the \?xd escape sequence. The escape sequence can be found on the field's context menu as: Insert Yate Escape Sequence > Character Sequences > Non Standard Delimiters.

By default if at least one artist satisfies the threshold, the recording is a potential result. If the All option is specified, all artists must satisfy the threshold and there must be the same number of artists in the source and the recording metadata.

Note that any recording which is acceptable based on matching is used when determining the recording with the earliest release. The individual values are not relevant.

The supplied text strings may contain any of the escape sequences described in Escape Sequences The escape sequences are only evaluated once.

Please read this:

> The above description describes how to search for the earliest recording by an artist. If you set the Ignore Artist option, artists will be ignored. ie. you will be searching for the earliest recording using only the title of a recording.

The information returned depends on if the metadata source is in named variables or is extracted from tracks.

# Results when Matching Track Metadata

The Network Response Property
  A value of 1 implies that data was imported. A value of -1 implies that no match satisfying the constraints could be made. A value of 0 implies that an internal error occurred when preparing the data. Typically this means that a required field was empty. Other values are typically HTML response codes.
Original Release Time
  The earliest release date is saved to the Original Release Time field. Depending on the downloaded metadata this may be a full or partial timestamp.
Recording Title
  The matched title is optionally saved to the Original Filename field (labelled as Original Filename/Title in the UI).
Recording Artist
  The matched artist is optionally saved to a the Original Artist field.
Recording Album
  The name of an release associated with the recording with the earliest date is optionally saved to a the Original Album field. This information may not be available.
Recording ID
  The recording ID is optionally saved to the MusicBrainz Recording Id UDTI.
Release ID
  The release ID of a release associated with the matched recording is optionally saved to the MusicBrainz Release Id UDTI. This information may not be available.
Release Group ID
  The release group ID of a release associated with the matched recording is optionally saved to the MusicBrainz Release Group Id UDTI. This information may not be available.

# Results when Matching Metadata in Named Variables

The results are stored as a key value list in named variable MusicBrainz Earliest Recording Results. Standard list (\~) and key-value (\k) delimiters are used. Note that keys are not present if an item was not imported. The following keys may be present:

Status
  A value of 1 implies that data was imported. A value of -1 implies that no match satisfying the constraints could be made. A value of 0 implies that an internal error occurred when preparing the data. Typically this means that a required field was empty. Other values are typically HTML response codes.
Date
  The earliest release date. Depending on the downloaded metadata this may be a full or partial timestamp.
Title
  The matched title is optionally saved.
Artist
  The matched artist is optionally saved.
Album
  The name of an release associated with the recording with the earliest date is optionally saved. Note that an empty value implies that the information was not available.
Recording ID
  The matched recording's ID is optionally saved.
Release ID
  The release ID of a release associated with the matched recording is optionally saved. Note that an empty value implies that the information was not available.
Release Group ID
  The release group ID of a release associated with the matched recording is optionally saved. Note that an empty value implies that the information was not available.