Giter Club home page Giter Club logo

Comments (10)

sentriz avatar sentriz commented on June 20, 2024

hey @tamland, have you get the GONIC_MULTI_VALUE_{GENRE,ARTIST,ALBUM_ARTIST} flags?

in your case they should be set to the multi value

https://github.com/sentriz/gonic?tab=readme-ov-file#multi-valued-tags-v016

also, when changing the multi valued settings, a full/slow scan must be done once

from gonic.

sentriz avatar sentriz commented on June 20, 2024

oh sorry i misread. i think you're right, only artists is used for multi valued tags. but the reason is how picard and beets.io work.

the single value would be for the concatenated version, for example this release you could see these vorbis comments:

ARTIST=Deepchord presents Echospace
ARTISTS=Deepchord
ARTISTS=Echospace

(ARTISTS repeated twice)

from gonic.

tamland avatar tamland commented on June 20, 2024

I see. I dont use any of those but have a lot of bought music that sometimes comes pre-tagged this way :) I.e. it only contains:

ARTIST=Deepchord
ARTIST=Echospace
GENRE=A
GENRE=B

from gonic.

sentriz avatar sentriz commented on June 20, 2024

interesting I haven't seen that format before. how does it encode the concatenated / display values?

and you don't use any taggers like picard or beets.io?

from gonic.

tamland avatar tamland commented on June 20, 2024

I use Kid3. I don't know if there is any standard for this except the one page I linked to which describes multiple artists: https://xiph.org/vorbis/doc/v-comment.html

Do you think it's possible to support both without breaking picard/beets?

from gonic.

sentriz avatar sentriz commented on June 20, 2024

that looks like an example, I think I saw some sort of standard somewhere - I'll try to find it

but also, we need to have both somehow. for example gonic needs to return displayAlbumArtist "DeepChord presents Echospace" and albumArtists ["DeepChord", "Echospace"] over the Subsonic API

and I don't know how it could do that without two distinct tags

also handing legacy desktop music players which don't understand multi valued tags

edit:

here is one example of ARTISTS https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html

not definitive but it comes from the metabrainz foundation at least

from gonic.

dweymouth avatar dweymouth commented on June 20, 2024

What about conditional logic:

  • If only ARTIST present and single-valued, return it for Subsonic artist, artists (single-valued), and displayAlbumArtist
  • If only ARTIST present and multi-valued, return the multi values in Subsonic artists property, concatenate them with a ", " for displayAlbumArtist, and either return the first artist, or the same concatenated string in the legacy artist property.
  • If a single-valued ARTIST is present alongside multi-valued ARTISTS, use ARTIST for the displayAlbumArtist and artist properties, and ARTISTS for the multi-valued property

from gonic.

sentriz avatar sentriz commented on June 20, 2024

@dweymouth i think that could work, though there's some lost of information there

if all we see is
ARTIST=A
ARTIST=B

and no ARTISTS, gonic has to make up a displayAlbumArtist. does it join with a " & "? or with a ", ", maybe an " and "?

and also that displayAlbumArtist displayArtist field is kind of important - for example when scrobbling to LastFM, if you have a non-standard credit string, it's going to look different to everyone elses. you'll see like "only 1 listener" to this artist (maybe the real one was "A, B & C" for example)

it's not ideal to make one up i think

from gonic.

sentriz avatar sentriz commented on June 20, 2024

and hey @tamland to add to this last comment here, i think it would be a lot of complexity to support treating two tags having different meanings in different contexts, so closing for now. but if you do find some difinitive source on the meaning of the tags (and maybe that beets and picard have it wrong) i'd definitely hear it

could also be an option for your library to just copy the singular named tags to the plural?
for example with python/mutagen some

for f in files:
    audio = FLAC(f)
    audio['ARTISTS'] = audio['ARTIST']
    audio['ALBUMARTISTS'] = audio['ALBUMARTIST']
    audio.save()

could do the trick? that said, gonic's displayAlbumArtist will only show the first tag, and lastfm scrobbles will be a little strange, but if you don't have display/singular tags anywhere in your library that just how it i suppose

from gonic.

tamland avatar tamland commented on June 20, 2024

If you follow picard: https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html

There is actually no mention of "genres" og "albumartist". Only the "artists" tag use plural.

from gonic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.