I think originally we didn't have recordings (or relationships) just tracks so at that time there was just track artists and therefore it made most sense to store composer as track artist for classical and performer as track artist for everything else.
Then we added recordings allowing them to be shared between releases. The reason we had both a RecordingArtist and TrackArtist was to implement a form of Object inheritance. i.e whilst every track on a release needed a track artist it was recognised that when different tracks were in fact the same recording they would usually all have the same track artist, this common track artist is the recording artist. It is officially the track artist of the first release the recording was used on but in reality it is more likely to be the track artist of the first release that was added to the database containing this recording, but it doesn't really matter I would consider it the usual track artist, we have the same logic for RecordingTitle and TrackTitle
But classical music didnt adapt to this change (or rather music added using the Classical Music Style Guidelines) the above logic is ignored for Recording Artist and Track Artist. Instead the RecordingArtist is used for the performers, and the TrackArtist for the composers (however the logic is not ignored for Recording Title and Track Title). Neither Artist field specifically relates to the cover credits, for example if the composer is not credited on the release but you know who the compose is they should still be added to the TrackArtist field.
Personally I would prefer it if classical music guidelines was more in line with the general guidelines.
FWIW I have implemented such an algorithm in my SongKong tagger and it is working reasonably well. Originally I wanted to identify when a release was a classical release in order to set a suitable value for the track artist but I have other reasons to do this as well.
- To shorten track titles to just the Movement
- To force Composer to be added to album title if missing, helps distinguish between simarly named works
- To remove Composer from Album artist, some users don't like having composer in album artist fieldthis because not a performer
- To prevent modification of fields, users sometime use certain fields in non-standard ways for just their classical music to compensate for the lack of support in music players.
- to set an isClassical flag that can then be used when renaming files from metadata to allow classical music to be named differently to non-classical.