-
Notifications
You must be signed in to change notification settings - Fork 587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
catalog update : ampache reads artistinfo wrong if 2 artists performing as duet or similar #2711
Comments
This may be a duplicate, see my issue: #1911 I would be quite happy if we could get it sorted out though! |
Hi kuzi-moto, have been looking roughly through the issues of the last year not seeing your issue being almost 2 years old. I am in deed greatly interested to get this sorted out, its anoying to see the wrong artist names in the library not beeing able to work around, except removing MusicBrainz and other online Databases from the scraping sources and put all info in the folders of the respective artist. I will do some examinations (Database structure i am not aware of) and report my results here trying to present a way that can be gane to achieve the disered improvements without to much need to alter the database structure. Greets |
Hi again, I tried to look a little bit deeper into the underlying problem. What i have been seeing in one of my cases Track 13, Rock Christmas Volume 7 Musicbrainz delivers the correct Tagging data, which i embedded with Musicbrainz Picard into the songs. Ampache don't handels this artist information correctly (my opinion). In the musicbrainz-artistid field of the song are two artistid's stored separated by "/" : This leads to the fact the album "Rock Christmas, Volume 7" exits in "Various Artists" due to the AlbumArtist and in "David Bowie" due to the arzist info in the database, but not in "Bing Crosby" whats wrong. From my examination this seems to be a limitation of the database structure. When it comes to artist this is definitly not sufficient to reflect all thinkable relations. So if it comes to an "multiple artist tagged song" one can store the INDICATOR insted of the artistid and hence let ampache look for that information in the additional table. I hope my thoughts are not to far from the existing database structure, as this was my first look into this today. Greets |
Hello @SePHTaN After doing some research, the separator used seems to be dependent on the tagger/player. For example Musicbee requires a semicolon. I have found at least one album that uses the semicolon to separate artists. And Picard recommends the "/" or ";" but allows any character to be the separator. Your issue is with Ampache. It is conforming to id3v2.3 specs. So your issue is actually a feature request. Also, there is at least one situation that the "/" character would be a problem with the artist: AC/DC.🙂 |
I've thought about this before and the only way to safely separate them is by mbid which can be split up by regex and separator will not matter. Doing it by name/string is next to impossible compared to using codes like mbid. Vainfo right now will strip any secondary mbids from the tags so that would need to change. But. I think we can group albums and tracks from separate/groups or artists using the mbids pretty easily in the SQL. |
When grouping songs with multiple artist you can essentially duplicate the row with a different artist id So a track with two artists would have two rows on the song table. The queries would have to be distinct on file to make them unique but it could very easily fit in the existing structure of the db without large structural change |
I have very limited insight how ampache gathers all the info from database and then displays it for example in Artist View. Looking again at the tagged data from my example above (: The disregarding of the second artist from tags leads to the fact that "David Bowie & Bing Crosby" gets added as new artist with the first musicbrainz_artistid: 5441c29d-3602-4898-b1a1-b77fa23b8e50 what in fact is the id from David Bowie itself. If you only store the artistid-of-ampache with the song the artistname can be retrieved from artist table, but what happens to the separator in the artist tag the ampersand in this case ? Could also be "feat." or "ft." (both for featuring) with an other artist ! Greets |
I think that one option will be to mimic to behavior of genres (tags), when a song has comma separated genres on th ID3 ID Tag Ampache separete them in two, lets say we have a song which genre is Electronic and House if the ID3 GENRE TAG HAS Electronic, House Ampache identifies the two tags. Obviously this will need some work for the user also who will need to edit the artist tag like in your case artist : David Bowie, Bing Crosby. Is just an idea, but I remember that multiple artist are not implemented yet on Ampche. Also althoug I dont like it, the large companies begin to use this method: The artist on the tags will always be the album artist or the main artist of the song, in your case lets say Artist: David Bowie And they put the featuring artist on the name of the song like this: Song: Name of the song (Featuring Bing Crosby) Is they way Spotify, Itunes, Apple Music and all of tthe services solved that issue. |
I know that multiple artist isn't yet implemented in ampache. Thats why i wrote this issue. I don't care much about how spotify, itunes or anyone else solves this. I posted this issue also to get a rough estimation how easy or fast it might be to get a solution. |
Other feature that ampache has is that it can take into account The "Artist Album" tag on the ID3 ID TAG, filling this on your files will help Ampache to show the right Artist of the album regardless if a song on the album has a as an artist like "David Bowie & Bing Crosby" If I understand you correctly, filling the "Artist Album" on your files will fix part of your issue. |
Multlple artists per song could be tracked using foreign keys in a one-to-many relationship (or is it many-to-one?). it would take major changes and i would suggest implementing in v5.x.x. Ampache will be converted to an object relational model (ORM) which, I believe should make complicated searches much faster. I'm sure it also complicates other features such as searching for artist art and probably database searches. |
As multiartist per song/album is a feature i am really missing, began looking into how ampache handles this all. After having a little bit of insight to how ampache stores all this into the database , i began thinking about how this could Frist idea (baddest of all): Second Idea :
How many duplicates are allowed ? I have at least one Song performed by 6 Artists together. At last i came to the same conclusion like @wagnered :
Best way for my opinion would be an extra table song_artists storing song_id, artist_id Though to get all this together there have to be many changes done in ampache and the only part i have had time to get a bit insight into are src/Module/Util/VaInfo.php, /src/Model/Artist,php and /src/Model/Song.php. |
Within the SQL i don't really see anything limiting duplication. The first artist as a primary song artist but the other artists would still be searchable. I think that my only requirement for multiples would be based on MBID to avoid the issue with strings. I've got this as one of my todo's now that other things are stabilising. |
@SePHTaN i got your email but was blocked returning by my response. i'll send you some info from gmail instead of my personal mail tomorrow but we can get started on this. |
hey @SePHTaN just FYI the develop branch is going into a mini freeze while we work on source-changes merge, Work on this will start again after that. i'll email you when things are clearing up and we can start again |
Not going to get done for 5.0 |
Any updates on this? |
it's basically done in develop. 5.3 coming probably within a week depending on my work |
Awesome! Looking forward to the update! |
it's a really requested feature and it helps actually speed up a few things too and just in general fixes up a lot of bugs so i'm really excited for this one to be closed. |
You've got this bro, just looking at the commits you put out everyday! I just did a quick test on the latest develop branch and my artist info stayed the same, did I miss something? I also noticed that in the change log you mentioned MusicBrainz ID, is it a must for this to work? |
Yes, for good and working identification of Artists Ampache relies on the Musicbrainz ID's. For my own Catalog i can say that i have always been tagging my music with musicbrainz picard. |
Thank you! This has been very informative! |
there are a few things to fix up and to document, the function is all correct so that won't be changing significantly before release initial wiki doc here |
I couldn't get it to work for some reason. Docker setup, tasted with default configuration. MusicBrainz enabled.
This song is being showed in library with |
Your MB_ArtistID's are definivly wrong: |
Oh no, sorry I meant to use ABCD1234 and such just as dummy IDs for the purpose of demonstration, The actual IDs in the file are identical to the ones you provided. Could you maybe show you config file and the metadata of the music? Maybe there's something misconfigured on my side. |
Thank you for taking time to help me, really appreciate it:), finally figured out what went wrong with my files(rather silly): for separator in the |
Hello. First of all thanks for all that work, it is a cool feature. I was reading the wiki and I read this
If it is because of the separators artist Tag could have? (Like feat ft. , ;) If thats the problem i think it could be an option in the configuration file like theres is now for genres:
Where we could put the artists separators that ampache could use, and also the administrators could change. If thats the issue and you want to implement something like that in future releases, let me know and I can make a deep research and propose which separators can we take into account. Thanks |
Identifying Artist correctly is a bit more complicated than splitting Artist names.
It would be possible to identify song artists with an musicbrainz-database lookup during catalog scan. Another BUT !!! The option to do a full lookup may be a nice feature to have when its about to check a single album or maybe even all albums of a single artist. |
So best way is to use a tagger like picard, and tag your albums before adding to your catalog. |
Closing this as the 5.2+ releases have fully supported this and it's not presenting any issues for a while and the pull for 6 is almost ready. |
Description
Describe the bug
Adding an album containing songs with featured artists Ampache misinterprets the Interpret info .
Example (Data from Musicbrainz picard):
Album : Rock Christmas, Volume 7
artist : David Bowie & Bing Crosby
artists : David Bowie/Bing Crosby
mb-albumid: 5e41e7eb-9dd5-432b-83c8-e6c772931286
MB-artistid: 5441c29d-3602-4898-b1a1-b77fa23b8e50/2437980f-513a-44fc-80f1-b90d9d7fcf8f
After the Update i have 3 Artists in my Catalog:
Bing Crosby, mb-artistid: 2437980f-513a-44fc-80f1-b90d9d7fcf8f
David Bowie, mb-artistid: 5441c29d-3602-4898-b1a1-b77fa23b8e50
David Bowie & Bing Crosby, mb-artistid: 5441c29d-3602-4898-b1a1-b77fa23b8e50
Wenn i now look at my David Bowie albums i there always have the artist info : David Bowie & Bing Crosby
To reproduce
Steps to reproduce the behavior:
Expected behavior
Ampache reads both mb-artistids and adds this song to those two artist in the catalog.
If one or both doesn't exist adds this artist to the catalog.
So what to do with the info in the artist tag: David Bowie & Bing Crosby
So i could be happy when ampache decides to throw away this info and build it by itself from the tagged mb-artistid's.
In a way like this : the first mb-artistid as main artist und the second one as featured artist
Means ampache would display : David Bowie feat. Bing Crosby
Screenshots
Can be provided when necessary.
Environment
Client type
Settings
Mostly default
Logs
Can be provided when necessary.
The text was updated successfully, but these errors were encountered: