Bug 616 - Specify sort order without using sort order tags (TSOP, etc)
: Specify sort order without using sort order tags (TSOP, etc)
Status: NEW
Product: Logitech Media Server
Classification: Unclassified
Component: Tagging
: unspecified
: All All
: -- enhancement with 3 votes (vote)
: Future
Assigned To: Unassigned bug - please assign me!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2004-10-08 11:52 UTC by Taylor Reid
Modified: 2011-11-06 23:24 UTC (History)
5 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Taylor Reid 2004-10-08 11:52:57 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.
Comment 1 KDF 2004-10-08 11:55:56 UTC
SQL backend issue...once again.
Comment 2 Taylor Reid 2004-10-08 11:59:30 UTC
I assumed so.  I just wanted to make sure this suggestion was captured for 
purposes of the database development.
Comment 3 KDF 2004-10-08 12:32:52 UTC
marking this as an enhancement for when SQL backend is available
Comment 4 Blackketter Dean 2005-01-08 11:31:05 UTC
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.



Comment 5 Greg Klanderman 2005-01-08 19:46:42 UTC
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".
Comment 6 Blackketter Dean 2005-01-10 12:29:23 UTC
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?
Comment 7 Greg Klanderman 2005-01-10 13:57:04 UTC
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?
Comment 8 Blackketter Dean 2005-01-10 14:42:24 UTC
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...



Comment 9 Greg Klanderman 2005-01-11 06:51:14 UTC
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!
Comment 10 Taylor Reid 2005-01-11 20:33:04 UTC
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.
Comment 11 Don Lagosz-Sinclair 2005-04-19 05:11:24 UTC
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. 
Comment 12 Keith Briscoe 2006-11-14 11:50:37 UTC
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.
Comment 13 Jim McAtee 2006-11-14 16:30:35 UTC
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.

Comment 14 Ben Sandee 2006-11-14 17:29:08 UTC
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.

Comment 15 Jim McAtee 2006-11-14 17:41:33 UTC
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.
Comment 16 Chris Owens 2010-05-06 15:54:36 UTC
Dean doesn't work here any more :)
Comment 17 Alan Young 2011-11-06 23:24:29 UTC
Unassigned bugs cannot have a priority.