I’m working on a new task that lets you select some songs and say please find the best Musicbrainz release for these songs, so that every song gets a decent match and update metadata accordingly.
This is the first attempt at release based matching (whereby all the selected tracks are considered rather than processing one track at a time) and it draws on some of the ideas discussed in
http://www.jthink.net/jaikozforum/posts/list/1136.page
But the problem is simpler because we are only working on one album and the user has told us they believe all these songs come from one album rather than Jaikoz having to work that out. If this goes well I will extend the logic to the AutoCoorect from Musicbrainz and Manual Correct from Musicbrainz but in the first instance it provides an easy way to fix a group of songs that have been incorrectly split over a number of releases.
But I would appreciate your ideas on the algorithm, which so far is as follows.
-
Find all Candidate Releases which match any of the following.
The selected songs release metadata matches release name
The selected songs subfolder field contains the release name
The selected songs have puids that link to a release. -
Discard any releases that have less tracks than we are trying to match.
-
For each Candidate Release compare every song to every track and score based on matching songname, song length, song track no (Score 0 -100)
-
For each Release discard any release which could not get some kind of match for every song to a track.
-
Score the remaining releases with their best track mapping. So for example user has selected ten songs and each one perfectly matches a different track on a release on title,trackno and durartion would score 1000.
-
For each remaining release calculate release score for additional release attributes:
Release Type
ReleaseCountry.
Total Tracks on Release -
Then combine the track level and release score to decide what release to use.
-
Update track with selected Release metadata
Problems
a. What weighting to decide on when combining track and release level scores.
b.If we check every track puid for releases could take some time, but if we don’t would struggle to match tracks with little metadata.
c. Musicbrainz releases without track times are problematic
d. What the minimum score that gives us confidence to accept the release as the correct one.