emms-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MusicBrainz integration (and by extension other music search APIs)


From: Daniel Semyonov
Subject: Re: MusicBrainz integration (and by extension other music search APIs)
Date: Sun, 03 Mar 2024 21:09:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

>>>>> Yoni Rabkin writes:

    > 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.

What prevents performing a single search for releases (or release groups)?
According to https://musicbrainz.org/doc/MusicBrainz_API/Search#Release_Group
it should be possible to use the 'artist' or 'artistname' field instead
of 'arid'.

    > 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?

I think this would be a nice feature, and I'd be glad to help implement
this.
The way I imagine this looking is having a buffer which opens through a
search (either by supplying a string or using some contextual
information, like the playing track in the current playlist or the album
under point), which shows a list similar to the EMMS browser and shows
metadata in a separate buffer when a track is selected.  Alternatively,
maybe just list artists and their releases, and use something like
'tabulated-list-mode' or 'vtable' to show tracks belonging to a release
and their metadata when a release is selected.

In addition to this type of interface, I think having a non-interactive
interface (maybe an info function) to automatically update track
information through MusicBrainz would be good.
Some notes on a possible implementation:
- This would require having some info available for a track to perform the
  MusicBrainz search, so it would have to be used alongside an existing
  info function.
- It would potentially allow a user to have a music library which isn't
  well maintained (not properly tagged), but still has accurate
  information saved for each track in the EMMS cache after it is added.
- Unfortunately this would have to be interactive too, to some extent,
  since as you said even when matching artist names and release names
  exactly, you still get various special/regional/etc. releases.

Currently I use beets to achieve this (through its autotagger), but I
always prefer Emacs-based solutions.  In any case, I'll only start
working on something like this once there's a good implementation of the
main interactive interface.

Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]