google-code-export / beets

Automatically exported from code.google.com/p/beets
MIT License
0 stars 0 forks source link

Track artists vs recording artists #523

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
SUMMARY: beets is using the recording artist when it should be using the track 
artist if it wishes to match MusicBrainz / Picard.

EXAMPLE:
For example see the release: 
http://musicbrainz.org/release/f982ea0e-6fdd-4e21-bafa-a78a316987f3

And the XML: 
http://musicbrainz.org/ws/2/release/f982ea0e-6fdd-4e21-bafa-a78a316987f3?inc=art
ists+artist-credits+recordings+aliases

The MusicBrainz website and XML give track one's artist as Frédéric Chopin 
(Fryderyk Chopin untranslated), however beets gives it as 'Martha Argerich'

The following code will print the track artist as beets understands it:
-----------------------
>>> import beets
>>> from beets import confit
>>> config = confit.Configuration('beets', 'beets', read=True)
>>> beets.config = config
>>> import beets.autotag.mb
>>> album = 
beets.autotag.mb.album_for_id('f982ea0e-6fdd-4e21-bafa-a78a316987f3')
>>> print album.tracks[0].artist
Martha Argerich
-----------------------

NOTES:
Tested against a freshly cloned master from github dated 2013-02-026.

This bug is due to musicbrainzngs version 0.2 not supporting artist-credit on 
track entities, 0.3dev has support for them: 
https://github.com/alastair/python-musicbrainz-ngs/pull/75

A potential way to deal with this could be to pass the track object into 
beets.autotag.mb.track_info instead of the recording, and let it decide if it 
should use the track artist-credit (if it exists), and then fall back to the 
recording artist-credit if it does not.

Original issue reported on code.google.com by sam.do...@gmail.com on 26 Feb 2013 at 2:36

GoogleCodeExporter commented 9 years ago
Looking at the code, it might be easier to pass an artist-credit into 
track_info as a keyword argument so as to maintain functionality with 
match_track.

I'm happy to work on patch once the aliases stuff is sorted.

Original comment by sam.do...@gmail.com on 26 Feb 2013 at 2:41

GoogleCodeExporter commented 9 years ago
Interesting. I wasn't really aware of the distinction -- is this primarily used 
for classical music?

This change looks plenty reasonable to me, but we should consider whether a 
configuration option would be appropriate here, in case there are situations 
where the recording artist makes more sense than the track artist. (Although, 
again, since I haven't seen this split before, it could well be the case that 
track artists are almost always preferable, in which case a config option would 
be unnecessary.)

And thanks for volunteering to put together a patch. That would be incredibly 
helpful! And thanks for being attentive to beets' treatment of MB's data model 
in general.

Original comment by adrian.sampson on 26 Feb 2013 at 7:20