I have a working MusicBrainz API for Emms in a local branch, in the sense that I can send a request and get a response which is then processed into SEXP form.
The question now becomes: how do we start to integrate that information into Emms? Identifying a specific artist, recording, or release is non-trivial. Each album can have multiple releases. For example: ones issued for the Japanese/European/U.S. market, an extended re-release, a digitized version of the original vinyl release, a remastered release, the 40-year anniversary remaster, etc. With MusicBrainz specifically, the process needs to start with an API call to correctly identify the artist, then the recording, then the release-group, and finally the release. For illustration purpose, I'll present information from MusicBrainz about David Bowie: Searching for "David Bowie" as an artist returns over 14,000 results! Assuming we choose the right one (and not, for instance "Woody Woodmansey's Holy Holy, a David Bowie tribute band"), we will get the MusicBrainz artist ID for David Bowie. We can then effectively do a search for terms in the specific release we have at hand using the artist ID. We could then search for "Heathen" and get the MusicBrainz release-group of 21 releases for that recording. We can finally examine one of those releases to see the track list for that specific release and match it to the files we have to hand. I propose that to begin with, we put together an interface which allows the user navigate this hierarchy, in that order (artist, release-groups, releases/tracks). The user could then match that information up with what they have in hand and manually edit or correct their tags (or just learn more about the artist and other albums they have). If that is successful and useful, I would then add features on top of that which say "please copy these track names to this Emms entry, and write the tags to the files" What are your thoughts on this? -- "Cut your own wood and it will warm you twice"
