sentriz / gonic

music streaming server / free-software subsonic server API implementation
ircs://irc.libera.chat/#gonic
GNU General Public License v3.0
1.62k stars 115 forks source link

`artists`, `albumartists`, and `genres` with picard #528

Closed alscaldas closed 4 months ago

alscaldas commented 4 months ago

gonic version: v0.16.4 (Docker nightly)

I believe that either the feature multi genres, artists and album artists isn't working properly to me or I didn't understand how to corretly tag my audio library.

My audio files are mostly FLAC (some 95% flac, the rest mp3 and m4a lossless). I use Picard to tag them and I believe that they're correctly tagged because when I use for example MPD (which is what I use most of time on my desktop) it works correctly.

What I mean is: If a album has 3 different genres MPD shows me (in fact, ncmpcpp) shows me the album in 3 different places if I search by genres. The same goes to artists and album artists. I understood that Gonic worked the same way (and I know it works because I read successfull cases in both the installation instructions and the closed issues). But it isn't working to me...

I don't like albums that have something as "Artist A featuring Artist B". I do prefer them as being completely separate entities (Artist A and Artist B as multiple Artists and, if the case, Album Artists also), and if I understood it right, the flac metadata supports it and also gonic supports it. In fact, I love the fact that gonic is capable of doing this, because the other servers I tested apparently don't do.

Anyway, here is my docker-compose.yml file:

services:
  gonic2:
    image: sentriz/gonic:nightly
    container_name: gonic2
    restart: unless-stopped
    environment:
      GONIC_MULTI_VALUE_GENRE: "multi"
      GONIC_MULTI_VALUE_ARTIST: "multi"
      GONIC_MULTI_VALUE_ALBUM_ARTIST: "multi"
      GONIC_SCAN_INTERVAL: 5
      GONIC_SCAN_WATCHER_ENABLED: 1
      # optionally, see more available env vars in the readme
    #env_file: 
      #- stack.env
    ports:
      - 4748:80
    volumes:
      - /home/myuser/Docker/gonic2/data:/data # gonic db etc
      - /mnt/Storage/Temp/Músicas:/music:ro # your music
      #- /path/to/podcasts:/podcasts # your podcasts
      - /home/myuser/Docker/gonic2/playlists:/playlists # your playlists
      - /home/myuser/Docker/gonic2/cache:/cache # transcode / covers / etc cache dir

    # set the following two sections if you've enabled jukebox
    #group_add:
    #  - audio
    #devices:
    #  - /dev/snd:/dev/snd

The following images show on the left side 2 examples of how I usually tag my files. Reading this I noticed that gonic expects to find albumartists and artists in order to work.

001 002

As I read about the Picard tag scripting possibilities I tried to use this:

$setmulti(artists,%artists%)
$setmulti(albumartists,%albumartists%)
$setmulti(genre,%genre%)

But in the 2 cases I mentioned in the images, it works in one of them but not in the other. Also, genres don't work at all.

Here is an example: 003

As seen on the first attachment, the album "A Panela do Diabo" is supposed to have 4 genres ("Latin", "New Wave", "Rock" and "Rock and Roll") but only "Latin" is detected.

004

As for the second attachment, "Americana", it's supposed to have 2 artists and 2 album artists, but if I go to "Artists" I don't see "The Crazy Horse". I see only "Neil Young".

I believe there's something I still didn't get about the right way to tag these. Could you please take I look if I'm doing something wrong and, if that's the case, point me in the right direction?

sentriz commented 4 months ago

can you email me an example file that has multiple tags? email is on profile. also, after setting the env vars, you need to do a "full/slow" scan from the admin UI for gonic to see the changes

alscaldas commented 4 months ago

Thank you so much for the prompt reply.

I've just sent you a msg, as requested.

As for the env vars, I created a second gonic container just for testing this issue. That's the reason it shows only 2 albums. And yes, I've been doing a complete scan each time I change some metadata.

sentriz commented 4 months ago

@alscaldas hey thanks for the file ive checked them. it seems like "albumartists" is not set, "artists" looks good (Raul Seixas, Marcelo Nova), and "genres" is missing. however "genre" is there and has the multiple values. can you try set "albumartists" and "genres"?

oh interesting, picard seems to use "albumartist" as the multi valued tag, unlike beets

would

$setmulti(artists,%artists%)
$setmulti(albumartists,%albumartist%)
$setmulti(genres,%genre%)

work?

which is

 $setmulti(artists,%artists%)
-$setmulti(albumartists,%albumartists%)
-$setmulti(genre,%genre%)
+$setmulti(albumartists,%albumartist%)
+$setmulti(genres,%genre%)
alscaldas commented 4 months ago

Hey @sentriz , it seems to be working now!

Btw, your suggestion worked partially. I mean... genres worked perfectly as you suggested, but if i use $setmulti(albumartists,%albumartist%), as the original albumartist field I have is "Raul Seixas & Marcelo Nova" I don't get "Raul Seixas" and "Marcelo Nova" as 2 different entities as I want. So I believe that I have to edit them manually.

I guess I had completely misunderstood the concepts here. As I think I don't have these fields (genres, albumartists and artists) I'll have to add them myself (probably manually) to my library?

sentriz commented 4 months ago

hm honestly i'm not entirely sure about how to do that with picard. gonic is expecting the format of the tags to be like how beets does it

the files you send are correct but only for artist. other two are missing (just need an s)

image

i think there should be a way of automatically doing that with picard?

EDIT:

oh maybe not. it seems they dont have an "albumartists" field available https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html

alscaldas commented 4 months ago

i think there should be a way of automatically doing that with picard?

I sincerely hope there's a way, because my files don't seem to have these tags. This artists you saw is there because I tried that Picard tag script yesterday when I noticed the issue and begun my testing. It didn't exist originally...

Anyway, that's my homework now. Now that I understand what's going on and what I'm supposed to do it's time to do some research.

I sincerely appreciate your help. You've just acquired a new user to this nice project of yours. :)

sentriz commented 4 months ago

thanks :~D ill keep the issue open then because it would be great if you could share your findings on setting these tags for other users of gonic and picard

sentriz commented 4 months ago

if it's useful to help test btw, the latest/master version of beets.io does this out of the box

sentriz commented 4 months ago

@alscaldas does $setmulti(albumartists,%_albumartists%) work? from https://community.metabrainz.org/t/multiple-album-artists/532302

alscaldas commented 4 months ago

@alscaldas does $setmulti(albumartists,%_albumartists%) work? from https://community.metabrainz.org/t/multiple-album-artists/532302

@sentriz Yep, it apparently works.

And btw, I hadn't seen this specific thread yet but they coincidentally discuss two of the albums I was having trouble with. this one and the one from Neil Young and Crazy Horse I used here as an example.

I'll have to do some testing (I'd like to see how it behaves with the 'sorting' tags), but I believe this will work in most of the cases:

$setmulti(artists,%artists%)
$setmulti(albumartists,%_albumartists%)
$setmulti(genres,%genre%)
sentriz commented 4 months ago

haha that's a funny coincidence. but great, ill consider this done then since gonic doesn't care about _sort tags yet