GNOME Bugzilla – Bug 154671
Don't add artist name to list
Last modified: 2018-05-24 10:38:04 UTC
When adding a compelation like Peter Green's Songbook, which features songs with all different artists, each artist will be added to the artist list. See screenshot at <a href="http://www.heko.dk/~maj/a/artist.png">example</a>. After adding this compelation I got 29 extra artists each only with one song. This fits badly when all my other artists have assigned full albums. A solution could be an option "Don't add artists to list" when right clicking on the album name in albumlist. or perhaps Letting Rhythmbox regonize a text file that is placed in the directory together with the music files, that tells Rhythmbox to treat this albums with speciel care. The last idea, could be extened to a whole set of features which could do all sorts of special treatment to the files.
With itunes, you can select several songs, open the "song properties" dialog, and check a "these songs are part of a compilation" check box. Then, all these songs are sorted under a virtual artist named "Compilations" or something like that.
Created attachment 33409 [details] Picture of Rhythmbox browsing a compelation with many artists. The picture from the first message, in case it should get lost
*** Bug 314720 has been marked as a duplicate of this bug. ***
Could be also linked to the fact of changing the artist name of many songs at one time. For now this is impossible.
I have been thinking that it could be done through setting Artist="null" in the database...? Or perhaps make a new column in the database called "Add to Artist". Default would be 1.
I agree that an elegant way of handling this would be great. Perhaps allow to "tag" an album as a compilation with different artists. That'd make the album show up under Various Artists, while the songs could still have the proper artist set. These artists could then show up in the Artist browser only if they have X number of songs?
*** Bug 337781 has been marked as a duplicate of this bug. ***
I would be satisfied with Mr Brugmans's proposal. I'd put a bold-faced "Various Artists" entry at the end of the "Artist" list. Implementation would be to add to the database two lists: a list of albums to show also as by 'Various Artists'; and a list of artists, all of whose albums should be shown under 'Various Artists', and whose names should not be shown in the Artist list. Algorithm when adding a track: if aforementioned artist list contains track.artist list track under 'Various Artists' else list track under track.artist end if aforementioned album list contains track.album list track under 'Various Artists' (if not there already) end What do you think of this from a UI perspective? Suppose we had two toggles "List albums by $ARTIST as by <b>Various Artists</b>" and "List $ALBUM as by <b>Various Artists</b>" These toggles could be displayed in the pop-up menu for each track, referring to the artist and album of the selected track. So to remove an artist from 'Various Artists' and put him back in the main Artist menu, one selects one of his tracks and un-toggles the "List albums by $ARTIST as by <b>Various Artists</b>" option. Or, to remove an album from 'Various Artists', one selects a track from the album and un-toggles the "List $ALBUM as by <b>Various Artists</b>" option...
Some artists will also have their own whole albums. For example the "Greenpeace Rainbow Warriors" album features tracks by several artists who also have albums that I have. I think you need to ask "Are there other tracks for this album that have a different artist?" and if the answer is yes, remove all tracks from that album from consideration for the artist list and put them under the "Various Artists" entry.
Bill Ward, Yeah, I agree. I think we need _two_ pseudo-artist entries: "<b>Many Artists</b>" for compilation albums. and "<b>Miscellaneous Artists</b>" for bogus/insignificant/cluttering artist names. So, we'd have one toggle "List $ARTIST under <b>Miscellaneous Artists</b>." located in the track-listing popup menu, and a keyboard shortcut + global menu item to be used when scrolling through the Artist list. Seem reasonable?
Would a settings menu with these options solve the problem? If the number of songs from an artist are lower or equal to [ ] [x] Show this artist in Various Artists [x] Show these songs in Various Songs If an album have more than one artist [x] Show artists in Various Artists [x] Show songs in Various Songs
Setting a toggle would be too onerous for the user. I think it needs to be automatic. For "Various Artists," I think the formula would be an album that has songs by more than one artist. This shouldn't be too hard to autodetect (but I don't know anything about how the code is structured). For "Miscellaneous Artists" that could cover a lot of cases, such as: - an artist who only has one song in the database - songs where there is no other song with the same album - plus manually flagged artists as you describe? In my own case, all my MP3 files are ripped from my CD collection so I have complete albums, not individual songs, and my ID3 data are accurate. Also, I generally listen to music an album at a time, not a song at a time. So for me, the "Various Artists" items are the key priority.
It seams to me, that these 3 are the same: * For "Various Artists," I think the formula would be an album that has songs by more than one artist. This shouldn't be too hard to autodetect. * an artist who only has one song in the database * songs where there is no other song with the same album How should Rhythmbox be able to tell them apart?
Sure, detecting compilation albums and putting them under "Various Artists" is the first step, and it helps to unclutter the artist list. But after we do that, we could still have N-thousand unwanted artists (or pseudo-artists named "(", "+", or "Op.110") cluttering the list. If I sorted my artists by track count, I'd see a fifty-artist "head" of artists that I care about, followed by a five-thousand-artist "tail" of random artists who are responsible for one or two random MP3s somewhere on my disk. So, your "chop off the tail here" idea seems logical and I like it. But there could still be cases where you want to override its decision: 1) You might have many tracks by a bogus artist name. (According to the whims of whoever mis-set the ID3 tags of those files.) 2) You might want to see Beethoven, who has only three tracks, in the main artists list, because those tracks are whole symphonies. 2) You don't want to see Joe Schmoe even though he has more than N songs; you don't value his songs very much even though you don't want to delete them. So a per-track "List $ARTIST under <b>Miscellaneous Artists</b>." would be helpful to fine-tune the tail-chopping logic's decisions. And we really want _both_ a "Various Artists" category, where we put detected compilation albums, and a "Miscellaneous Artists" category, a catch-all for everything else. Otherwise, how are you going to find your compilation albums amidst the 10,000 miscellaneous artists who've contributed one or two insignificant tracks (from one or two insignificant albums) towards your MP3 collection? The album listing for "Various Artists" would be a nightmare to navigate---you'd have to pick out the dozen authentic compilation albums from the huge list of random noise albums with one or two tracks. Oh, and the first-pass, compilation album detection, needs to be more sophisticated than proposed here. Why? Suppose that two artists both have albums named "Foo". The naive algorithm would merge them into a compilation album named "Foo". The fix is easy: if there are more than N duplicate track numbers, we refuse to create a compilation album. N would probably be set in the range 0..2.
Putting compilations under Various Artists isn't that simple. What about Comment #9 ? How should the settings window look like? Like Comment #11 ? It may be done automatically, but thinking in settings often reveils things you didn't thought about, and makes it easier for others to understand (me).
Settings Window ------------------------------------------------- Compilation Albums [x] Show compilation albums in Various Artists. Miscellaneous Artists [x] Show artists with fewer than [ n] songs in Miscellaneous Artists. ------------------------------------------------- Per-track popup menu. ------------------------------------------------- ... Copy Add to play queue Remove ------------ [x] Show $ARTIST in Miscellaneous Artists. ------------ Move to Trash ... ------------------------------------------------- What is hard about compilation detection? I don't understand. Consider the list of all tracks. Group them by album. Iterate through these groups: If more than one artist: Count track numbers that appear more than once. If less than two, this is a compilation album.
Though, on second thought, is there any reason why you would _not_ want a Various Artists listing for compilation albums? Maybe just: ------------------------------------------------- Miscellaneous Artists [x] Show artists with fewer than [ n] songs in Miscellaneous Artists. -------------------------------------------------
Or maybe: ------------------------------------------------- Miscellaneous Artists [x] Show artists with fewer than [ n] songs in Miscellaneous Artists. Compilation Albums [x] Aggregate compilation albums in album listings. ------------------------------------------------- The latter toggle would mean: Say the user selects "Britney Spears" in the Artist list. The Album list displays three of her albums. It also displays twenty compilation albums which include one or two Britney Spears tracks. The toggle would group those twenty albums into a "Compilation Albums" entry in the Album list.
What if there are two compilation albums with the same exact titles, but with different artists and tracks *and* the same number of songs? I think in such a case, there's no way to correctly divide them into two albums. In such a case the user would probably have to edit the ID3 data to change the name of one of the albums to disambiguate. However, provided they at least have a different number of tracks (and assuming the ID3 data is complete) it ought to be possible to create two separate "Various Artists" album entries in such a case. The existing state of the art in this area is iTunes which has a "This track is part of a compilation" checkbox in the per-track settings (which can also easily be set for all tracks in an album or other selection). When that box is checked, that track is treated as if the artist is "Compilations" rather than its real artist. Auto-detecting compilations would be an improvement over iTunes, but one does wonder if Apple didn't have a good reason for not auto-detecting...?
Point taken, but that is a rare case. Do we care if, 0.01% of the time, we fail to detect a compilation? And it's also possible, in rare cases, to detect a spurious compilation. Consider the case of two incomplete albums with the same name but by different artists: artist/album/tracks... ---------------------- foo/bar/1 2 3 4 5 6 laa/bar/7 8 9 10 11 12 My algorithm would detect a compilation here: since the track numbers don't overlap, it looks like a plausible compilation. But, again, how often will this happen? Probably almost never.
I am starting to worry about the automatic approach for several reasons. * We have already now found problems with using an algorithm. This is not good design of a new feature. * As with any other feature, there some (perhaps many) that do not want this feature. * There must be a very good reason for Apple for choosing a context menu option. I guess you can't buy compilations from iMS, so their problem ought to be smaller that ours? * It is differcult to explain to user where their songs or artists whend if the algorithm is too complicated. * Forcing a fixed name like Various Artists or Miscellaneous Arists have shown not to be in the taste of users. See Bug #139256
I think it's worthwhile to consider the next-best alternative to adding these features. 1) Use case: Joe adds his big music library. The artists listing is cluttered with thousands of minor artists and thus practically unusable. Proposed solution: ------------------------------------------------- Miscellaneous Artists [x] Show artists with fewer than [ n] songs in Miscellaneous Artists. ------------------------------------------------- Effects of feature: Joe enables this toggle, and his Artist listing is reduced to a more reasonable length, making it useful again. Next-best alternatives to feature: 1) Joe suffers with the overcrowded Artist listing. 2) Joe does not use the Artist/Album browser at all. 3) Joe removes all the insignificant artists from his library. None of these is very appealing... 2) Use case: Tom adds a dozen compilation albums to his library. (a) His artist listing is cluttered with 100 insignificant artists. (b) He has a hard time finding his compilation albums in the huge Album listing for "All artists". Proposed solutions: (a) See proposed feature above. (b) Detect compilation albums and list them under "Various Artists". Next-best alternative: (a) Suffer with it? Don't use rhythmbox to play your compilation albums? (b) Make a playlist for each compilation album. (Though this clutters up his sources list...)
You have some good ideas, but I don't think they fit into this bug, which is about a simple "artist on/off" option in the context menu. Please file a separate bug for your algorithm idea.
OK. Who's in charge of rhythmbox development right now? I think we need his advice on how best to resolve these bugs.
I'd suggest offering the options suggested in comment 22 as a plugin(s). Whatever we do, someone will not like it.
I'll write the plugin next week if all goes well.
Right now, I don't think plugins have a good way of filtering/modifying the artist list. However once we've sorted out how they should be able to do that, adding it wouldn't be too hard. The basic steps to do it would be: activate(shell) get the "sourcelist-model" gobject property from the shell connect to the "row-inserted" signal, doing the following as a handler: RBSource *source = NULL; gtk_tree_model_get (model, iter, RB_SOURCELIST_MODEL_COLUMN_SOURCE, &source -1); modify_source (source); do gtk_tree_model_foreach() on the source-list model, doing the above for each source modify_source(source) for each view in rb_source_get_property_views (source): RhythmDBPropType prop_type; g_object_get (view, "prop", &prop_type, NULL); if (prop_type == RHYTHMDB_PROP_ARTIST) modify_view (view) modify_view() is the bit that probably can't be done right now. Currently the "All" line is added by the RhythmDBPropertyModel itself, when all it should really be doing is gathering properties. What I would suggest is that we should make RBPropertyView make a filtering model for the RhythmDBPropertyView, which adds the "All" line, and also provides hooks for plugins to modify stuff. How to do that I haven't figured out yet.
Shouldn't the original bug be solved by teaching Rhythmbox how to handle the albumartist tag properly? That's the standard way to tell "show artist when playing that song but when grouping, use albumartist instead" - for example iTunes and QuodLibet correctly merge such albums into one when you set albumartist to something like "John Foo" or "Various Artists."
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/48.