Music Library: Improved Classical Music Browsing
#16
I would like to avoid Kodi specific tags too. We could just say that (because of the common misuse of TPE2) there is no way to tag orchestra in ID3. Stritly speaking there isn't so maybe I am trying too hard to fix something that isn't Kodi?

Evilhamster I'm just not happy with using TCML for this. As far as I can tell it is intended for artist - instruments pairs, and "orchestra" is not an instrument! I haven't had Picard set this TMCL either for anything I have tried - most of my music is FLAC - what did it do for you? Was TMCL a single value? What album? Again it would help if I could somehow see the tag part of the file. Do some more pursuading.

The fact Picard lists TMCL as equivalent to PERFORMER makes me suspicious that TCML has not been correctly handled (yet) by them. PERFORMER can be a single (concatonated) string or an array or names, but not pairs.

Are any other players (not taggers) using TMCL yet? I fear we need some more input from outside our Kodi world to get this right.
Reply
#17
id3 (midv2 --list-raw), first song of http://musicbrainz.org/release/c7a267c7-...57de8abe0f
encoding=1, people=u'orchestra', u'Berliner Philharmoniker' (wiki)
flac: (metaflac --list), second song of http://musicbrainz.org/release/c7a267c7-...57de8abe0f
comment[35]: PERFORMER=Berliner Philharmoniker (orchestra)

To get picard to set these tags, enable id3v2.4 (if you are using 2.3 they end up under IPLS) and enable use track relationships (under metadata).

I checked with quodlibet and they displayed the tmcl information, so you got Berliner Philharmoniker listed under Performers as a orchestra.

Musicbee uses TXXXTongueERFORMER for this information.

Qoobar uses TXXX:ORCHESTRA and TXXXTongueERFORMER

So it's a mess and not widely supported Smile

One alternative would be to just face the fact that it's a mess and try and grab the information from as many places as possible.
Reply
#18
Thanks for the research. I think there are a couple of classical specific products out there too, but not found what they use.

(2015-09-25, 21:54)evilhamster Wrote: ....
So it's a mess and not widely supported Smile
Yes it is.
All because TPE2 was stolen for albumartist.

Quote:One alternative would be to just face the fact that it's a mess and try and grab the information from as many places as possible.

Until it turns out one of those places gets used for something else...
Also variations on "performer" really doesn't tell you much about role does it. Could be used for all manner of things that we just haven't stumbled over.

Which way to go?

a) Say no way to tag orchestra in ID3
b) Try to grab the information from as many places as possible.
c) Set a Kodi specific tag TXXX Ensemble

In this situation my preference is c). It does not conflict with anything, and if users want to see orchestras listed separately they can tag with it without upsetting any other players etc. Or they can ignore it because it is Kodi specific

To be honest the big benefit of my work is to handle composer, orchestra is just a nice bonus.
Reply
#19
© would be similar to "albumartists", isn't it? "Albumartists" is not part of the ID3 specs and it is not even possible to add via Picard without a taggerscript. This would be the same for TXXX Ensemble? It can be added via tagger script and then Kodi could support it?

I personally don't really care too much as I will not be using orchestra sorting, but I think © makes sense.

Related questions, how is all these fancy new tags and nodes reflected when using Kodi as UPNP server?
Server: Asus Sabertooth Z77 | Intel Core i5 3.4 GHz | 16 GB DDR3 | 128 GB SSD, 82 TB (9 x 6 TB, 7 x 4 TB)
HTPC 1: Raspberry Pi 2 | HTPC 2: Raspberry Pi 2 | HTPC 3: Raspberry Pi
Reply
#20
@Dave
The only tagger I know of that writes orchestra information and is classified as a tagger for classical music is Qoobar is they use the following tags: http://qoobar.sourceforge.net/en/documentation.htm#tags

I don't see why we should use a kodi specific tag when there are alternatives used, that we could support and by doing that make it easier for the users to correctly tag their music?

If we go over the alternatives where this information seems to be stored and the potential problems.

Id3:
TMCL:
If orchestra:artist has been added to the TMCL fields, setting that artist as an orchestra for the song makes sense to me and seems of no risk. (Supports Picard)
TXXXX:Orchestra
Setting this as orchestra for the song also seems like no risk. (Supports Qoobar)

Vorbis:
PERFORMER:
If it contains "artist (Orchestra)", setting this artist as orchestra for the song also makes sense and seems like a no risk. (supports Picard)
ENSEMBLE:
Seems to be the most widely used standalone tag.

I don't see any problems with either of these alternatives, they would support existing taggers and generally make life easier for our users. Am I missing something major?

@steve
I would consider albumartists was more of a bandaid fix to enable the musicbrainz implementation to name the artist correctly even when it was used without scraping enabled.
Reply
#21
You could use both b) and c), with the Kodi tag used if exists, revert to b) behavior if not.

While I'd normally say run like hell from using a Kodi tag, it seems there is no accepted solution out there, and having that level of control in Kodi might set it apart from other players.
Reply
#22
Music 
Thanks for input guys, I really do appreciate it. For this phase I am still drawn to either a) or c) just to keep things simple.

If we are to process TMCL, and perhaps we should in the long term, then we need to deal with all the possible contents. While doing that we could also pick up the other tags that provide contributor info, none of them are called for by users as much as composer, but once available who knows how much use they could get. To do that I think we need to change CMusicInfoTag to store these tags generically, rather than a variable for each tag. Not sure I want to do that right now, or that it would be acceptable to the devs. Trying really hard to make changes in small steps that can easily be reviewed by busy people.

Tagging software can mostly be configured to tag how you want, and given the current state of external classical music data manual intervention going to be necessary anyway. In the future we can look at making the whole thing easier for users, right now many would settle for Kodi just providing basic support.
Reply
#23
I've no personal interest in classical music, but from my point of view if there's an external tagger in Qoobar that can deal with classical music then it might make sense to use whatever conventions they use, or at least make sure we're compatible.
Reply
#24
Trying to understand how this should work.

I have FLAC (Vorbis) tagged files.

ARTIST is the composer
MUSICBRAINZ_ARTISTID is the composer
ALBUM ARTIST is the orchestra

I added new tags

COMPOSER is the composer
ENSEMBLE is the orchestra
CONDUCTOR is the conductor

After scanning

song_artist table has

role 1 composer (expected)
role 3 composer (expected)
role 5 orchestra (expected)
role 4 conductor (expected)

OK looks good. But then the album_artist table has

role 2 orchestra (expected)
role 5 orchestra (expected)

but nothing for conductor or composer. Is this expected behavior? What is the intent of album_artist for conductor or composer? I should note my convention (may be just me) is that ALBUM defines a composer's "work" or standard collection, (so a physical medium/release might contain multiple "albums", but all "songs" that are tagged with ALBUM have the same composer as the album).

scott s.
.
Reply
#25
Thanks for your interest Scott, and trying this out
(2015-09-29, 23:37)scott967 Wrote: Is this expected behavior? What is the intent of album_artist for conductor or composer? I should note my convention (may be just me) is that ALBUM defines a composer's "work" or standard collection, (so a physical medium/release might contain multiple "albums", but all "songs" that are tagged with ALBUM have the same composer as the album).
Yes, that is the behaviour I expect.

Users vary in the way they currently tag classical music, what they put in ARTIST or ALBUMARTIST, all different work arounds for the lack of specific support. To get the benefit of the changes I am making there will be some retagging work, but I can't see a reasonable way around that. Should be able to set up scripts for some of it at least.

Under your convention the tracks from my CD with Bruch and Mendelsson Violin Concertos would be tagged as two albums, is that right? Out of interest how about an overture tacked at the end of a symphony album, but same composer, is that one album or two? I can understand why you might have done that, but hope in a subsequent improvement to handle the identifying work issue. I like maintaining the concept of an "album" as CD/release, and I think some others do too.

But let's explain my approach.

Standard tags, with the exception of album artist and album title, are at song level, so without proliferating custom tags we have limited ways to identify roles for artists at an album level. But we can do it! Processing checks the ALBUMARTIST names against the COMPOSER, CONDUCTOR and ENSEMBLE tags for all the songs. If an album artist has a role for one or more of the songs then it is given that role in album_artist table.

Frequently I would put composer, orchestra and conductor names in both ARTIST and ALBUMARTIST tags for each track, the mix of lots of different kinds of artists in the artist list is no longer an issue because we can filter what role(s) we list. However, the situation of an album with contributions for more than one composer is much like having featured artists verses "various artists". Examples probably help.

1) Let's take the album http://musicbrainz.org/release/c7a267c7-...57de8abe0f as example. I would tag that as follows

ARTIST: "Mozart / Berlin Philharmoniker / Karajan"
ALBUMARTIST: "Mozart / Berlin Philharmoniker / Karajan"
MUSICBRAINZ_ARTISTID: b972f589-fb0e-474e-b64a-803b0364fa75, dea28aa9-1086-4ffa-8739-0ccc759de1ce, d2ced2f1-6b58-47cf-ae87-5943e2ab6d99
MUSICBRAINZ_ALBUMARTISTID: b972f589-fb0e-474e-b64a-803b0364fa75, dea28aa9-1086-4ffa-8739-0ccc759de1ce, d2ced2f1-6b58-47cf-ae87-5943e2ab6d99

COMPOSER: "Mozart"
CONDUCTOR: "Karajan"
ENSEMBLE: "Berlin Philharmoniker"

Then the libary will have "Mozart", "Berlin Philharmoniker" and "Karajan" as separate artists, even if I have albumartistsonly enabled. But I could just show composers and of these Mozart would be the only one in the list.

2) But for albums with music from multiple composers I may choose a primary (album) composer, and leave the others to only come up (like featured artists) if albumartistsonly is disabled, or as search results.

I am not really into Wieniawski so I think of http://musicbrainz.org/release/cd8faafd-...4db175df1c as a Tchaikovsky album and I would tag the Wieniawski tracks (leaving out MBID and first names for readability)
ARTIST: "Wieniawski / Bell / Ashkenazy / Cleveland"
ALBUMARTIST: "Tchaikovsky / Bell / Ashkenazy / Cleveland"
COMPOSER: "Wieniawski"
CONDUCTOR: "Ashkenazy"
ENSEMBLE: "Cleveland"

and the rest with "Tchaikovsky" in the obvious places.

If albumartistsonly is enabled then when looking at composers only "Tchaikovsky" gets listed.

3) Or if I consider Wieniawski as significant as Tchaikovsky I could tag all tracks with
ALBUMARTIST: "Tchaikovsky / Wieniawski / Bell / Ashkenazy / Cleveland"

4) Album of tracks from different composers I would not include the composer in ALBUMARTIST.

Hope that makes my ideas a bit clearer.
Reply
#26
This is really cool and it reads like this will work just with the regular Picard tags (just manually adding albumartists)? What part of this requires a Picard specific tags?

Thinking about music nodes, I could then define a music node "classical music" and this node would have "artist" (Tchaikovsky / Bell / Ashkenazy / Cleveland), "composer" (Tchaikovsky=, conductor (), and emsemble (). I can then select what I sort by and see the respective albums. Is that how this works when I add "nodes"?
Server: Asus Sabertooth Z77 | Intel Core i5 3.4 GHz | 16 GB DDR3 | 128 GB SSD, 82 TB (9 x 6 TB, 7 x 4 TB)
HTPC 1: Raspberry Pi 2 | HTPC 2: Raspberry Pi 2 | HTPC 3: Raspberry Pi
Reply
#27
(2015-10-01, 01:14)steve1977 Wrote: This is really cool and it reads like this will work just with the regular Picard tags (just manually adding albumartists)? What part of this requires a Picard specific tags?
Yes, all standard tags. But the tagger may have to be setup to add them, no sayng that Picard (or anything else) will put the right data in the right tag by default.

Quote:Thinking about music nodes, I could then define a music node "classical music" and this node would have "artist" (Tchaikovsky / Bell / Ashkenazy / Cleveland), "composer" (Tchaikovsky=, conductor (), and emsemble (). I can then select what I sort by and see the respective albums. Is that how this works when I add "nodes"?

Yes, you can create a "classical" item, then under that you can have a composer node, that will show only composers, a conductor node, showing conductors etc.
Reply
#28
Cool, not sure whether I understand your first reply though. Do I need change anything in the setup of Picard to add these tags or is it done by default?
Server: Asus Sabertooth Z77 | Intel Core i5 3.4 GHz | 16 GB DDR3 | 128 GB SSD, 82 TB (9 x 6 TB, 7 x 4 TB)
HTPC 1: Raspberry Pi 2 | HTPC 2: Raspberry Pi 2 | HTPC 3: Raspberry Pi
Reply
#29
Just realized that this may not be supported by the IOS remote?
Server: Asus Sabertooth Z77 | Intel Core i5 3.4 GHz | 16 GB DDR3 | 128 GB SSD, 82 TB (9 x 6 TB, 7 x 4 TB)
HTPC 1: Raspberry Pi 2 | HTPC 2: Raspberry Pi 2 | HTPC 3: Raspberry Pi
Reply
#30
(2015-10-07, 17:33)steve1977 Wrote: Just realized that this may not be supported by the IOS remote?
Not yet. Kodi has to change first, then the JSON interface gets extended, and the remotes and web interfaces may be changed to use the functionality. It is something I personally need so I have the motivation to get there, just not enough hours in the day!
Reply

Logout Mark Read Team Forum Stats Members Help
Music Library: Improved Classical Music Browsing0