[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
- MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/03
- Re: MusicBrainz integration (and by extension other music search APIs),
Daniel Semyonov <=
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/03
- Re: MusicBrainz integration (and by extension other music search APIs), Fran Burstall (Gmail), 2024/03/03
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/03
- Re: MusicBrainz integration (and by extension other music search APIs), Fran Burstall (Gmail), 2024/03/04
- Re: MusicBrainz integration (and by extension other music search APIs), Fran Burstall (Gmail), 2024/03/14
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/14
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/19
- Re: MusicBrainz integration (and by extension other music search APIs), Daniel Semyonov, 2024/03/19
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/19
- Re: MusicBrainz integration (and by extension other music search APIs), Yoni Rabkin, 2024/03/19