Bugzilla – Bug 616
Specify sort order without using sort order tags (TSOP, etc)
Last modified: 2011-11-06 23:24:29 UTC
Slimserver needs its own mechanism for specifying the sort order of Artists and Albums that does not rely on id3 tags. For a variety of reasons, storing Artist or Album sort order information in an id3 tag in an MP3 file does not seem to work well. The sort order frames (TSOP, etc.) require id3 v2.4, which is not supported by the vast majority of MP3 tagger and player software currently in existence. To date, I have only found one tagger (taged for linux) that allows you to assign a TSOP frame to an MP3 file. Tagging the file with a TSOP frame updates the id3 tags to v2.4, which slimserver can read, but is incompatible with most other software. This makes maintaining the tags very inconvenient. The sort order frames also don't address the sorting of multiple values stored in an Artist frame using the multi-artist splitter character. For example, a track by B.B. King & Eric Clapton should appear in "Browse by Artist" under both B.B. King (listed in the K's) and Eric Clapton (listed in the C's). The TSOP frame does not provide a mechanism to handle this.
SQL backend issue...once again.
I assumed so. I just wanted to make sure this suggestion was captured for purposes of the database development.
marking this as an enhancement for when SQL backend is available
It sounds like you are asking for two things: 1. Create multiple artist entries when artists contain & in the name. SlimServer already does this with the Multiple Items in Tags server setting. ( adding & to this would do what you suggest, but might do confusing things with "Bela Fleck & The Flecktones". I use a semicolon in my library for this and it works well. 2. Provide a way to specify sort order. You can use the Ignore Articles server setting and add the first names that you want to ignore. That will work globally, but probably is some work to maintain. We could support this if there were multiple TSOP and Artist tags in a given MP3 file. This is technically feasible, but I don't know what tag editing software supports this.
I really don't want to have to put semicolons in the Artist (TPE1) tag, because I'd like to have it displayed as it is written on the album. But when an artist varies how their name is written from album to album, I'd still like to have them appear only once under the Browse Artist menu. For example: Neil Young Neil Young with Crazy Horse Neil Young & Crazy Horse Neil Young & the Bluenotes should all appear as "Neil Young", and should be sorted as "Young, Neil".
I agree, this is a noble goal, but I'm not sure how to be able to explain to SlimServer how to implement this reliably. Can you elaborate on how SlimServer would figure out what the right thing to do is?
Hmm, I was afraid you might ask that.. let me see if I can flesh out the thoughts I had on this the other day. It seems like you need two mappings: one from the artist name as written on the album to a list of "canonicalized" artist names, and a second from canonicalized artist name to the sort name. So for Neil Young, the first map is something like: Neil Young => Neil Young Neil Young with Crazy Horse => Neil Young Neil Young & Crazy Horse => Neil Young Neil Young & the Bluenotes => Neil Young and the second is: Neil Young => Young, Neil Then you use the first mapping to create the names in the Browse Artists menu, and the second to sort those names. You could support having some file that lets you set up these mappings, as was requested by the reporter of this bug. Or you could try to make this work using the ID3 tags. Or you could support both. A separate mapping file has the advantage of being easier to maintain, as it's really pretty small, proportional to the # of artists, rather than the # of songs. Also many people are not able to create the ID3 sorting tags, or use other programs that barf on the new sort tags. Since I don't have a problem creating the ID3 sort tags, I'd also be happy with a solution using those. You could imagine defining a structured format for the TSOP tag which allows one to set up these mappings while still allowing it to be used by programs that don't understand the structured format for reasonable sorting. It seems like a format something like: <regular-TSOP>::<structured-TSOP> where: <structured-TSOP> = <entry1>;<entry2>;..<entryN> <entry> = <canonicalized-name>[=><sort-name>] would fit the bill. So for example for an album by Bob Dylan and the Grateful Dead you might have a TSOP entry something like: Dylan, Bob and the Grateful Dead::Bob Dylan=>Dylan, Bob;Grateful Dead Does that make any sense?
Ok, that helps. Another question: What appears in the artists area in your example? Do all of the versions show up or does just Neil Young? Another thought: Can this information be expressed in a tag somehow? It would be great if this information was carried along with the files themselves...
Hi Dean, Only the canonicalized artist names would appear in the Browse Artists menu, so you'd get a single "Neil Young" entry, which would be one of my goals for this. Regarding whether the information could be encoded in the tags, see the last part of my previous comments - I tried to describe one way this could be done, let me know if it makes any sense, if not I can try to flesh it out a bit more. Thanks!
Dean, > It sounds like you are asking for two things Actually, this bug only relates to number two on your list. I already split artists using the user-defined separator character, which in my case is set to "&". Therefore, an album by "B.B. King & Eric Clapton" already appears in "Browse by Artist" under both B.B. King and Eric Clapton. Unfortunately, B.B. King is listed under "B" and Eric Clapton is listed under "E". Here is my goal: I want the song "Riding With The King" to be listed in "Browse by Artist" under both B.B. King (listed under K) and Eric Clapton (listed under C). When playing this song, I want to see "Riding With The King (B.B. King & Eric Clapton)" on the Squeezebox display. I would prefer not to use the TSOP tag for this, since it is not widely supported and using it creates problems for other software that I rely on. My preference would be to use designated special characters in the Artist tag instead. I would suggest allowing for the optional use of a sort-order separator in the Artist tag so that you can specify a separate sort-order for each artist in this multi-artist field. : For example, assume I use "&" as my multi-artist separator and "^" as my sort- order separator. I could then tag "Riding With The King" as follows: Artist: B.B. ^King & Eric ^Clapton Title: Riding with the King The Artist tag would be parsed into two Artist values: "B.B. King" and "Eric Clapton". B.B. King would be sorted as "King, B.B." and Eric Clapton would be sorted as "Clapton, Eric". When I open the Browse Artists list, I would see: Eric Clapton B.B. King ... with the artists sorted by last name. When I play the song with my display format set to "TITLE (ARTIST)" I would see the following under Now Playing: Riding with the King (B.B. King & Eric Clapton) The sort-order separator character is dropped when displaying the Artist tag. Some variation on this approach would be very helpful.
I think I'd prefer a mapping file, for two reasons: 1) I'm using tags only sparingly (e.g. for artist name and song titles that contain characters that are invalid in file names), preferring to use the "guess tags from file names" method, and 2) as a programmer, the idea of redundantly storing sort information in every song is repulsive, though I understand the advantages of having the information automatically follow the file. OTOH, putting sort information that is only understood by SlimServer in the tags doesn't have any benefit when using the music files with other programs. I like the concept of canonicalized artist names (should that be a separate bug?), as I have a few of these, e.g. k.d. lang [and the Reclines], Paul Kelly [and the Messengers], Richard [and Linda] Thompson, etc.
I like the canonical name idea, and have created a separate enhancement request for it (bug#4509). It seems to be sufficiently different from the original feature request to warrant a new bug.
Amazing that two years later this problem, particularly the lack of id3v2.4 support in music management applications, devices, and tagging programs still exists. If you have MP3s with id3v2.3 tags without TSOP, there may be no way to accomplish the application of a sort parameter to a contributor name. What you need: A separate table with rows containing a contributor name and sort string. When a scan completes, or any time a new contributor is added to the contributors table, you apply the sort string found in this table to the record's NAMESORT column. You could easily have multiple name:sort records in this table for dealing with name variations. E.g. NAME NAMESORT ---------------------- ------------------------- Quincy Jones JONES QUINCY Quincy Jones Sextet JONES QUINCY Quincy Jones Big Band JONES QUINCY You would want a means of importing (and exporting) a text file containing this data, but ideally, you'll have a simple web interface for maintainence of the data. This table is never wiped clean by a wipe/rescan.
As you are well aware there are solutions out there. The sort order plugin allows the sort order to be specified without any id3 tags at all and does allow this data to be imported from a file.
Yes, I'm aware of the plugin. Very much the same idea, but I'm not sure it's working with SlimServer 6.5. Also, the user interface was overly complex and the plugin tried to be a bit too smart about doing firstname/lastname swaps. If there was no leading article, it 'suggested' swapping a two word names, like Pink Floyd -> Floyd Pink. It would be much better to have the functionality incorporated directly into SlimServer. The plugin, for instance, doesn't store its data in the database, and it doesn't apply the sort orders following a library scan. The latter would probably be simple enough (I believe you can hook a plugin into the scanner and execute something when it completes), but whenever SlimServer adds a new contributor, as it does during browse Music Folder, it would need to apply the sort order as found in the table.
Dean doesn't work here any more :)
Unassigned bugs cannot have a priority.