-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
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
[music] Change the way the (album)artists tag are handled #7486
Conversation
if (!artist.empty()) | ||
artistName = (i < artist.size()) ? artist[i] : artist[0]; | ||
|
||
if ( i < musicBrainAlbumArtistHints.size() ) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
6aa52cc
to
439b01e
Compare
Will need a test build to run it through my collection |
win32 test build is building and should be on the mirrors within the next hour. |
Thanks the test build link is here http://mirrors.kodi.tv/test-builds/win32/KodiSetup-20150712-439b01e-addartistdescfield.exe @steve1977 @scott967 @GitrianDK can you test? |
Happy to help testing, but would need your help with an OSX built (no Windows machine running at the same). Any chance? |
builds can be found on http://mirrors.kodi.tv/test-builds/ with ff6de6c in the filename |
Did some preliminary test on Kodi 16 150721 nightly. Had some problem with ID3v2.3 tags, but they are problematic anyway. Retagged to v2.4 and it seemed to work as intended viz: As expected, the song_artist "credit" as defined by MB for TPE1 is lost when TXXX "artists" tag is used. This was go-path testing. Need to do some negative path testing next, also will look at APE tags and FLAC(Xiph) tags. |
This is really great. The only missing piece now is to have Picard (or Kodi?) fix incompatibility of artists tag in MP4/M4A files? http://tickets.musicbrainz.org/browse/PICARD-376 |
@scott967 Have you been able to test any build with this patch applied (I don't think that daily had it). @steve1977 Has anyone else had time to test this patch? Any remarks of comments? |
No clue about functionality but code looks good @evilhamster |
439b01e
to
d856ed7
Compare
Should m_musicBrainzArtistHints and m_musicBrainzAlbumArtistHints be added to CMusicInfoTag::Serialize? I am not saying they should, but just think it may need checking. If I have understood correctly the presence of MBIDs and ARTISTS, the value of the ARTIST tag becomes a song artist description (stored in strArtists field of Song table) that is displayed on play etc. That seems fine to me in principle, but I note that strArtists is not included in searches and that could be a disadvantage when ARTISTS and ARTIST tags contain different variants of artists names e.g. abbreviation "SNO" rather than "Scottish National Orchestra". Users could rightly expect to be able to find the text they see when a song is played regardless of how Musicbrainz has correctly named the artists. |
@Paxxi @DaveTBlake Good point about searching, that could be done in two ways: I would prefer option a, but that should probably be done in a separate pr since that could grow in size. What do you all think? |
I'm eager to get this patch merged so that I can fork from it with other music library changes (re: classical music), so would not want to complicate it further and cause delay. I am also still finding my way around the code so not sure how much my opinion counts, but I am an avid music library user here goes! Support for artist alias names would be great, as would sort name so we could have surname order for individuals rather than first name, but beyond the scope of this PR really. Searching in strArtists could be a quicker fix. More generally I wonder if the use of original strings and names + separators in the music library could do with some rationalisation. For example where does the strJoinPhrase and BoolFeatured in the song_artist and album_artist tables get used? If we have the original string and the separate names why does some output reconstruct the string, and elsewhere split the names again (using global setting separator)? CMusicDatabase::GetSongFromDataset should set strArtistDesc shouldn't it, it is part of CSong and is held in the DB? |
Commited some updates:
No updates in regards to the search part since I'm worried that doing the SearchSongs variant posted above, that will cause to many hits. Let me know if you have any feedback! I have added the last commit as a separate commit to make it easier to see the changes. If approved for merging, let me know and I'll squash it! @DaveTBlake |
2e39ff6
to
5aa4bc8
Compare
Fixed conflicts that prevented merging, squashed the commits into one (looked over them and it didn't make any sense to keep them separated). Anything I can do to speedup the possible merger of this PR? If possible I would like kodi16 to include this one, since it adds asked about features that where missing from #7281 |
Could you please try to factor out:
Since it's called multiple times now it makes no sense to keep that dupe code block all around. |
@@ -1178,7 +1201,16 @@ int CMusicDatabase::AddArtist(const std::string& strArtist, const std::string& s | |||
if (m_pDS->num_rows() > 0) | |||
{ | |||
int idArtist = (int)m_pDS->fv("idArtist").get_asInt(); | |||
bool update = false; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
Thanks evilhamster and Dave for driving this forward. This is truly exciting. I finally got around testing (using Kodi 16 Alpha 2 on Windows):
Has albumartists (with "s") already been implemented? If so, let me also test. Currently don't have any albumartists (with "s") tags, so need to manually tag. Thanks again @evilhamster and @DaveTBlake. This is really getting nice and fantastic to see attention on the music library. |
@steve1977 |
Thanks. Would this solve my issue? This would indeed be a much better work-around. I can currently not try as the fix for "artists" / "albumartists" (both with "s") for M4A files is not merged yet. But I am happy to test whether this works once this it's in. I have also added to the forum thread for wider visibility of the community (http://forum.kodi.tv/showthread.php?tid=235259&page=2). Thanks again Dave!!! |
5aa4bc8
to
8da40a8
Compare
@mkortstiege
Since this pr has not been accepted and merged, it is not included in the nightly's and the only way to test it is to manually compile it. I think it would be great if we could keep discussions that are not strictly related to this PR on the forum instead of github, to keep the numbers of emails down for the kodi devs. |
New test build: http://mirrors.kodi.tv/test-builds/win32/KodiSetup-20150903-8da40a8-addartistdescfield.exe @Paxxi, @Montellese please have a look as well if you get a chance so we can get this in within this merge window. |
@@ -369,8 +369,10 @@ int CMusicDatabase::AddAlbumInfoSong(int idAlbum, const CSong& song) | |||
} | |||
} | |||
|
|||
std::string GetArtistString(const VECARTISTCREDITS &credits) | |||
std::string GetArtistString(const std::string desc, const VECARTISTCREDITS &credits) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
No clue about functionality, code looks good. No objections to merging this asap |
…field is used to keep the information from the tags for display purposes.
8da40a8
to
c37a02b
Compare
@Paxxi |
[music] Change the way the (album)artists tag are handled
In #7281 I added some basic support for the artists tag to sort the problems reported in http://forum.kodi.tv/showthread.php?tid=198149
There where some comments that it was preferred if information in the artist tag could be retained for display purposes and the contents of the artists tag could be used when adding the artist to the database. This commit tries to solve this and from my testing it seems to be working fine, but more testing is required.
There is a problem with albums where there are artists credited for the album but are not credited on any song (like https://musicbrainz.org/release/5a216f06-5ed1-4ad4-a876-c1d5145ea6c8). They will be added with the mbrainz id to the database. I have added two things that should mitigate this problem, support for albumartists (not a standard in picard yet but will hopefully be) and changed the addArtist function so that if the artist has a good mbrainzid / name match from another release it will update the name.