Lastgenre struggling with multi-artist albums

I’ve run lastgenre through my entire library, and it’s generally done quite well. But there’s a large batch of albums that it’s struggling with, most of which have multiple artists.

I primarily use MediaMonkey to manage my library, and I have it set to separate artists with a semicolon in the database, and to name the files using only the first artist’s name. But when I import to beets, it’s converting the semi-colons to slashes.

So when I have an album like this in MediaMonkey:

it shows up in beets like this:

C:\>beet info album:"Soul Brothers"
C:\Dropbox\MediaMonkey Library\Music\Ray Charles\1958 - Soul Brothers\01-01 Soul Brothers.mp3
        album: Soul Brothers
  albumartist: Ray Charles/Milt Jackson
     arranger:
          art: True
       artist: Ray Charles/Milt Jackson

And even though I can see associated genres on Last.fm, it seems like those slashes are keeping lastgenre from finding the right album to pull from:

C:\>beet lastgenre -f album:"Soul Brothers"
lastgenre: genre for album Ray Charles/Milt Jackson - Soul Brothers (None)

I’ve been fiddling around for a while trying to figure out how to get lastgenre looking in the right place, but even when I modify the artist fields, it still searches with the slash:

C:\>beet modify album:"Soul Brothers" artist="Ray Charles" albumartist="Ray Charles"
Modifying 6 items.
Ray Charles/Milt Jackson - Soul Brothers - Soul Brothers
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Ray Charles/Milt Jackson - Soul Brothers - How Long Blues
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Ray Charles/Milt Jackson - Soul Brothers - Cosmic Ray
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Ray Charles/Milt Jackson - Soul Brothers - Blue Funk
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Ray Charles/Milt Jackson - Soul Brothers - Bag's Guitar Blues
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Ray Charles/Milt Jackson - Soul Brothers - Deed I Do
  artist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
  albumartist: Ray Charles←[31;01m/Milt Jackson←[39;49;00m -> Ray Charles
Really modify and write tags? (Yes/no/select) y


C:\>beet -vv lastgenre -f album:"Soul Brothers"
user configuration: C:\Users\Brian\AppData\Roaming\beets\config.yaml
data directory: C:\Users\Brian\AppData\Roaming\beets
plugin paths: C:\Users\Brian\beets\myplugins
Sending event: pluginload
lyrics: Disabling google source: no API key configured.
lastgenre: Loading canonicalization tree c:\program files\python37\lib\site-packages\beetsplug\lastgenre\genres-tree.yaml
library database: C:\Users\Brian\AppData\Roaming\beets\library.db
library directory: C:\Dropbox\MediaMonkey Library\Music
Sending event: library_opened
lastgenre: genre for album Ray Charles/Milt Jackson - Soul Brothers (None):
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: write
Sending event: after_write
Sending event: write
Sending event: after_write
Sending event: write
Sending event: after_write
Sending event: write
Sending event: after_write
Sending event: write
Sending event: after_write
Sending event: cli_exit

Does anyone have any ideas how I can get beets looking in the right place?

Hi! Can you try beet modify -a to change the $albumartist field, which is an album-level attribute?

1 Like

That worked perfectly. Thanks.

Any idea how to stop the underlying behavior, where it adds the slash?

Hmm; it’s hard to say, but I assume that data is coming from MusicBrainz? If so, there’s not much to be done because that is the “correct” metadata. We could imagine changing the lastgenre algorithm to replace slashes when querying, but I’m not sure that applies broadly…

That’s kind of what I was expecting. Sounds like it’s time to just learn some RegEx and send it in on a search-and-destroy mission.

Thanks again for the help.