Music Library: Improved Classical Music Browsing
#31
In case anyone is watching this thread I have finally got a much improved and extended version of my initial PR built and ready for testing. The code is in my local repo, but I will get it into the PR branch sometime soon (when I can face the rebase).

Most of the discussion above has been taken into account. Lots of useful input from @evilhamster, and I wish he was around for some more discussions. I bit the bullet and included TMCL tag, in fact this work generally improves the music browsing not just for classical music specifically.

It adds processing for the following tags:
COMPOSER (TCOM)
CONDUCTOR (TPE3)
LYRICIST (TEXT)
REMIXER (TPE4)
ENSEMBLE / BAND / ORCHESTRA (TXXX:Ensemble)
ARRANGER,
ENGINEER,
PRODUCER,
DJMIXER,
MIXER
PERFORMER=artist (instrument) (TIPL and TMCL)

I also simplified the way I was trying to deduce and store "album composers" etc. It can all be gleaned from the song_artist table.

Folder type custom nodes can use roleID and role as a criteria, for example
Code:
<?xml version='1.0' encoding='UTF-8'?>
<node order="3" type="folder" visible="Library.HasContent(Role, Orchestra)">
<label>Orchestras</label>
<icon>DefaultMusicGenres.png</icon>
<path>musicdb://artists/?role=Orchestra</path>
</node>
will list orchestras.

Notice the info label Library.HasContent(Role, XXXXXX) where XXXXXXX is role description will return is there are any artists with that role in the library.

I have added info labels for the form ListItem.Property(Role.XXXXXX) where XXXXXX is a role description. In addition to the standard roles: Composer, Conductor, Orchestra, Lyricist, Remixer, Arranger, Engineer, Producer, DJMixer, Mixer - this is flexible so that any role derrived from TMCL/Performer tags e.g. soloist, drummer etc. can be used to return the artist name(s) that play that role for a song.

And there is ListItem.contributor and ListItem.contributorandrole that return all musicians or other people involved (and their role) that have contributed to the recording musch like cast for video.

I have even had a crack at JSON output, and role as smart playlist criteria.

Test build is here http://mirrors.kodi.tv/test-builds/win32...People.exe

You will also want to download the following custom node files https://www.dropbox.com/s/6jhkz3chn2vf25...s.zip?dl=0 then create a Roles folder in Userdata/Library/Music and put them there.

Feedback appreciated.
Reply
#32
A more recent test version is here http://mirrors.kodi.tv/test-builds/win32...8-HEAD.exe

This has a mod to Confluence Song Info dialog that shows composer etc. if it was in the tag data. It also makes some of the custom nodes part of the standard hierarchy.The JSON API is also more complete (just in case someone wants to try that).

Testing and feedback welcome. Scan in music with these tags and have a play.
Reply
#33
Please allow me to chime in with my own usecase, not knowing if it's wholly relevant to this discussion. As stated in the first post, classical music is tagged somewhat differently from popular music. Personally, I don't always like the way Musicbrainz tags my classical music, especially mixing Composer and Performers in the Album Artist tag. Here's the inner logic of what I do:

I take the one entity that is consistent throughout the album as the album artist.

For example, if Byron Janis performs piano pieces by different composers, I put him as Album Artist and the respective composer (usually last name only if he's well known) as Artist. If it's an album with different pieces by Beethoven, I put him in Album Artist and the main performers (Orchestra, Condcutor, Well-known Soloist) in Artist.

Additionally, I format some personal preferences. Under Composer, I list the respective composer with full name, year of birth and death "(Sergei Rachmaninoff (1873-1945)".Under Performer, I list the performers with their respective instrument/vocal range, ie. "Byron Janis (piano)".

Now, there's an additional problem for those who are not native English speakers.Classical composers of Russian, German etc. origin tend to be transcribed and/or translated in other languages since the original spelling cannot be properly represented 1:1 ("Händel") . This is particular irksome in my own language, German, where Wikipedia has started to influence previously established spelling by pre-selecting what they think is the best article headline (they also make that choice in other languages, of course).

Example:
Original Russian: Пётр Ильи́ч Чайко́вский
English: Pyotr Ilyich Tchaikovsky, Piotr Ilyich Tchaikovsky, Peter Ilyich Tchaikovsky, Piotr Il'ich Tchaikovsky etc. etc.
German: Pjotr Iljitsch Tschaikowski, Peter Iljitsch Tschaikowski, Pjotr Iljitsch Tschaikowsky etc. etc.

As I really loathe the German post-reform transcriptions, I stick to the English ones whereever possible, using original German ones where possible ("Händel").

What I wanted to show with this little rant is that much of classical music tagging is a matter of personal preference, making it very difficult to create general rules that will be accepted by all.
Reply
#34
(2016-01-16, 20:48)HeresJohnny Wrote: ...
What I wanted to show with this little rant is that much of classical music tagging is a matter of personal preference, making it very difficult to create general rules that will be accepted by all.

Indeed. That is why I have added support for the composer (TCOM), conductor (TPE3), orchestra and performer etc. tags in as flexible a way as possible. I found mixing composer and other performers in names in Kodi's artist list very cumbersome.

With my changes composer or performers etc. don't have to be in the artist or album artist tag for Kodi to be able to list, search etc. And you get to see the performers under Song Info.

Johnny, since you have richly tagged music I am hoping that you might give my build a try. It is about to be merged, so when the nightlies switch to master (rather than Jarvis) it will be there. This is pre-alpha, so expect instability and keep away from your main system etc. but maybe have a play?
Reply
#35
I'll make backups and will have a look at what happens with your build, although due to some time constraints I might not be able to give an instant response. Maybe you could give me a private heads-up when it's a good moment to install it?
Reply
#36
Does anybody have an example of a MusicBrainz web service query that looks up artist as composer?
I'm ultimately trying to get a list of all ISRC tracks by unique composer ID.
Thx

UPDATE: It appears the easiest way is to clone the MusicBrainz database locally and set to autopdate
Reply
#37
Is this thread still open? I too am interested in using Kodi for classical music and found the above discussions interesting.

I use my current non-Kodi media player with the files arranged in directories (eg 'A' 'B' ' Bach' 'Br' etc ) to aid navigation to a particular work, with filenames in the format <Composer><Work><Orchestra>.mp3 (these filenames shortened as much as possible) with fuller info on orchestra and soloists/conductor in various other standard MP3 tags. This player is getting long in the tooth now and as I need to move to NAS storage I have just started trying Kodi as a new player. As you can imagine, finding particular classical pieces is impossible since even the filename does not appear! I clearly have a lot of re-tagging to do so am looking for a steer here.

My other issue is how to separate the library into two parts - classical and non-classical - as browsing approaches need to be totally different for the two types of music.
Reply
#38
Thread must be open, you posted :p

Although strictly discussion of Kodi design changes belong in this subforum, given that most people don't have any interest in music library (let alone Classical music) I tend now to focus any discussion on the Music Support subform. Most of the things discussed in this thread have been implemented in Krypton, but there is always more to do.

Quote:I clearly have a lot of re-tagging to do so am looking for a steer here.
Yes if you have not already done so then do make use of the COMPOSER, (COMPOSRSORT), CONDUCTOR and PERFORMER tags. Have a look on the Music Subforum you will find these discussed further.

Quote:My other issue is how to separate the library into two parts - classical and non-classical - as browsing approaches need to be totally different for the two types of music.
This was the issue that got me into being a dev volunteer. It is better than when I started, you can create "classical" music nodes (based on all having genre "Clascial" with others), list composers etc., but there is quiet a bit of fiddling to do for the user. Could also do with a genre based adaptive skin - someome is looking at that, but no idea if it will come to anything.

All I can say is it is better in v17, but more work to do.
Reply

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