Because metadata fields that can represent people such as artist and composer are stored FirstName then Lastname if we view such an index in our Control Point they are displayed alphabetically, but by FirstName rather than by LastName
It is more usual to organize people by the last name, for example consider a telephone directory. This is the purpose of Sort metadata fields. A sort metadata field isn’t typically used for display but to sort the values for display.
Whilst MinimServer can be configured to guess the sort name by reversing the values using the reverseName option this only works for the usual Western names. Sometimes an artist doesn’t have a first name, and composers in non-latin script cannot be handled. It is preferable to use dedicated sort fields rather than guessing the sort value by looking at the non sort field.
When SongKong gets a person in MusicBrainz they have a dedicated sort version of their name. This means the ComposerSort field always has a value and latin script sort names are provided for all people, even if their name is in non latin script such as Cyrillic or Chinese. For example the sort name of
Пётр Ильич Чайковский
is
Tchaikovsky, Pyotr Ilyich.
MusicBrainz data is peer reviewed and therefore generally reliable.
We configure MinimServer as follows:
We add any fields we need MinimServer to read from the files but not index to the itemTags field, so we add ComposerSort, this is the field used by SongKong and rcognized by MinimServer.
Then in tagValue a special syntax can be used to tell MinimServer to sort a value by another value, so here we tell it to sort the Composer field by the ComposerSort field using the format
DisplayField .value.sort={ SortField }
i.e
itemTags:ComposerSort
tagValue:Composer.value.sort={ComposerSort}
If we now rescan and view with our control point we can see the composers are now sorted correctly by their last name.