Kodi Community Forum
Tagging Classical - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Music Support (https://forum.kodi.tv/forumdisplay.php?fid=263)
+--- Thread: Tagging Classical (/showthread.php?tid=330797)



Tagging Classical - Tstrbl - 2018-04-12

Hi

This is what I want to do:
Have a separate parent node called 'Classical' whose source is the separate share folder on my NAS which contains all of my classical music.
This parent node should then contain various nodes: 'composer' 'conductor' 'soloist'.
Clicking on 'composer' would then list all entries in the library from my classical music source by their composer tag.
Clicking on one of these composers, for example, [Verdi, Giuseppe] would display all 'albums' whose composer tag is [Verdi, Giuseppe].
Clicking on 'conductor' and 'soloist' would work in a similar way. All 'conductor' tags, all 'soloist' tags, from the classical music source would be listed. Click on a conductor or on a soloist and all the albums with that conductor tag or soloist tag would be listed.

This is what I have done:
Created a parent node whose path starts with [path to my classical source]
I created a new node in this parent node called 'composer'.
What do I do next? The only options in 'add content...' are 'Artists' 'Albums' or 'Songs'.
I'm using the Library Node Editor add-on. Does doing this require me to edit XML files directly?

I suppose I could compromise and forget about the 'conductor' and 'soloist' tags, make the content of the node 'artist' and then retag my music so that the Artist tag was the same as the composer tag. This works but means I can't access music via soloist or conductor.


If anyone has advice here I would appreciate it. Thanks.


RE: Tagging Classical - scott967 - 2018-04-13

Thanks to our over-worked developer Dave, we have a lot of that capability already available in Kodi 17.6, and some fine-tuning additions working in pre-release Kodi 18.

Kodi now has support for "roles".  Some are pre-defined like composer, conductor, arranger but the list of roles can be extended as you want, for example to "soloist" (though you have to take care in your tagging).

To get the "roles" populated in the library, and then usable for displaying your music you need to do a proper job of tagging your music files.  After using various conventions for tagging my music, I decided to use the "Musicbrainz" web site style guide.  The one thing that Musicbrainz can do that isn't supported in Kodi (yet) is the idea of a "work".  In Musicbrainz a "work" is the generally recognized piece of music for example a composer's symphony.  Each work is made up of one or more parts which typically would be a "movement" or otherwise logical division.  A recording is a specific performance of a part of a work that appears in a track list of one or more releases.

Kodi works on the basis of "songs" which are part of "albums" so it isn't quite as good for classical.  If you use the MB conventions when tagging your files,  you get:
song artist:  composer
album artist:  composer / performer (typ orchestra) / conductor
song title:  movement or other part of a work
album title:  as listed on the actual release
composer:  composer
ensemble:  performer
conductor:  conductor
involved people list:  arbitrary list of person / role pairs (typ person / instrument or person / voice)

You can display or filter your music using any of those Kodi attributes.  The shortfall is
song title isn't related to a specific work you might be interested in so it might be difficult to eg find all Mozart Symphony No. 40.
album title isn't related to anything though most often the work title is included unless it's something like "Best of Bach"
no support for multiple media within a release, such as a "boxed set" (all Mozart symphonies).

Something that I don't think MusicBrainz supports, but if you are up for the effort in customizing your tags, is the idea of "soloist".  You could have a tag of eg Hilary Hahn / violin for a concerto, but also have a string quartet and violin I violin II listing ffor that as well.  So if you display the role of "violin" you don't get just the violin solos.  But you could add an additional pairing of Hilary Hahn / solist and that way you could display role violin and role soloist and see her in both places.

scott s.
.


RE: Tagging Classical - Tstrbl - 2018-04-13

Thanks scott967 for this detailed reply. Yes, Dave Blake has answered my questions in the past and has done excellent work.

I did look at the 'roles' function but I couldn't quite work out how to display the 'composer' tag of all scanned files from one specific source. I don't store my classical music with the rest of my music because it has unique archiving requirements. Is it possible to have a parent node that draws only from one source [a share folder on my NAS] and then displays all the 'composer' tags from the files I scan into the library?

Although I do use a 'work' tag, I generally make the 'album' tag the 'work' tag. I let the album art communicate recording metadata etc.
I imagine that I'll use 'soloist' and 'conductor' relatively rarely as browse points, so will probably be satisfied using the node I have, which is restricted by path to my classical music source, and which displays by artist [I've made the composer the 'artist' on all of these files.]

My Utopian Classical Music Player (totally impractical of course):
Click the Folder/Icon 'Classical'.
Next window would offer whichever tags you opt to include as indexing tags. I'd have 'composer' 'soloist' 'orchestra' 'conductor'.
Clicking 'composer' would display all composer tags. Composer metadata would be populated automatically from Grove, MGG etc. and would be available via an 'info' click.
Clicking a composer would display all the composer's 'work' tags with the 'date of first performance' tag displayed next to the work. 
Clicking on the 'work' would display album covers of each of the various recordings available as medium sized icons that scroll horizontally. Moving selector over album cover would display important recording metadata, in a customisable format, along a black band beneath the album covers. For me this would include date of recording, conductor, soloist, label, orchestra, reissue date.
Clicking on one of the album covers would bring up each of the tracks tagged as the name of the movement, aria (etc.), or piece. The album cover, along with above metadata would now be displayed on the left on a black background, typographically customisable etc. In addition, each track could automatically be associated with a scrolling score file so that I had the option to scroll the score (including libretto for operas) as I was listening.
Clicking the other three indexing tags 'soloist' 'orchestra' 'conductor' would simply display each of those tags. Clicking on a 'soloist' 'conductor' 'orchestra' would then display the 'composer' tags filtered by the previously selected 'soloist' 'orchestra' 'conductor' tag, and the options would be the same as a with the composer tag above.

Anyway, enough dreaming!


RE: Tagging Classical - DaveBlake - 2018-04-14

Improving Classical music handling is why I started dev work on Kodi, and I still have lots to do to get it where I would like it. We have similar utopian player dreams. Smile
But there are just not enough hours in the day, and much fundamental work to be done first.
(2018-04-13, 15:41)Tstrbl Wrote: I did look at the 'roles' function but I couldn't quite work out how to display the 'composer' tag of all scanned files from one specific source. I don't store my classical music with the rest of my music because it has unique archiving requirements. Is it possible to have a parent node that draws only from one source [a share folder on my NAS] and then displays all the 'composer' tags from the files I scan into the library?
Showing the song composer on the GUI is down to the skin, using
ListItem.GetProperty(Role.Composer)
on lists of songs. I don't think any of the popular skins have done it, maybe some have been modified by users, but the data is there waiting.

I must admit for a variety of reasons, including that it is part of the Musicbrainz style guide, I have tagged my own Classical music with the composer in both ALBUMARTIST and COMPOSER tags. That kind of eases the lack of skin support for composer in songs lists, and fills the gap that albums don't have composer(s) explicity only inherit them from songs.

I use a folder type custom node to pick out classical composers. It relies on the fact that I have included the genre "Classical" in all my classical music tagging. The advantage with folder type nodes is that the filter criteria get passed to the albums and songs nodes when you click on a artist
Code:
<?xml version='1.0' encoding='UTF-8'?>
<node order="1" type="folder" visible="Library.HasContent(Role, Composer)">
<label>Classical Composers</label>
<icon>DefaultMusicGenres.png</icon>
<path>musicdb://artists/?role=Composer&genre=classical</path>
</node>

You can make a filter type custom nodes for artists, albums or songs with a path rule and role rule
Code:
<?xml version='1.0' encoding='UTF-8'?>
<node order="2" type="filter">
<label>Composers on path XXX</label>
<icon>DefaultMusicArtists.png</icon>
<content>artists</content>
<order direction="ascending">artist</order>
<match>all</match>
<rule field="role" operator="is">
<value>Composer</value>
</rule>
<rule field="path" operator="startswith">
<value>C:\MyMusic\XXX</value>
</rule>
</node>
That shows the composers on your source path, but the rules don't pass onward, so click on a composer and you are back to normal navigation. You will see all the albums with songs by that artist, or maybe nothing if they were only composer and not tagged as artist too.

The other difficulty of course is seeing all your other music without the classical artists (composers, orchestras and conductors etc.) jumbled with it too. You need non-classical nodes etc., or even better an easy way to split all music (genres, artists, albums, songs and roles) by source.

I have done quite a bit of work to solve all that, building the right SQL for optional criteria, but for several reasons the PR floundered and is languishing on Github waiting for me to get back to it and rework even more fundamentally.


RE: Tagging Classical - HeresJohnny - 2018-04-14

Just to chime in here and add my support, i have tagged my classical music in almost the exact same way as you, Dave, except for when an album is a compilation of several composers. In that case, it's almost always the same perfomer for the whole album, so I put him in <ALBUM_ARTIST> and the composer in both <COMPOSER> and <ARTIST>. Another slight difference is that I use the full name of the composer in the composer field (Claude Debussy) and the popular name in ALBUM_ARTIST or ARTIST (Debussy). Not really consistent but handy for when I can't remember a first name (which is also a little memory game I play with myself).


RE: Tagging Classical - Tstrbl - 2018-04-15

@DaveBlake
Thanks. I too tag all my classical music either [opera] or [classical]. I've created a parent node whose path is the same as my classical music source. I then have a simple Content Artist node. I've made Artist and Album Artist the same as Composer so when I open the node it displays composers (which is by far the most common browse tag for me). I make the Album tag the same as the Work tag. Although this compromises the integrity of the release metadata it's less important to me than the 'Work' as a browse term. I can also recognise the release by looking at the album art. This also solves the problem of compilations. If they contain two or three major works then the release has three different 'Album' tags. If a release contains many miscellaneous pieces I'll make the 'Album' tag "Recital: [principal soloist]". In my case these releases are for the most part keyboard recitals or filler so it's usually a pianist or vocalist as principal soloist. I also use JRiver to edit tags and manage my library so have a 'first performed' 'date of recording' 'conductor' 'soloist' 'orchestra' tag etc. which displays in my classical and opera custom view.

For my main (non-classical) library I simply exclude the tags 'Opera' and 'Classical'.

If I had the time I'd learn more about the coding, design of Kodi and get more involved in improving classical music support. Unfortunately, my time is very limited at the moment! Thanks again though for improving Kodi so that it actually works pretty well. I can browse via composer, find what I want quickly etc.