Jump to content

Add a specific content type for classical music


Marin

Recommended Posts

Hi,

 

Some of us listen to classical music and maintain extensive collections of it. Unfortunately, proper classical music sorting requires different metadata fields than pop music. For example, the composer field is not very important with pop music, but is a big requirement with classical music.

 

Currently, Emby supports a single content type for music, which is tailored for pop music. It has views to list Artists, Album artists, Albums, Songs and Genre. I propose to create a second content type dedicated to classical music. This would be a very coherent move since there already are distinct content types for movies, series, concerts or home movies, even if they all deal with video files.

 

The views of this new content type would better fit classical music: for example, we would be able to list music by composer or by conductor, but not by song as this does not mean anything in classical music.

 

Furthermore, audio metadata support should be improved. Currently, Emby supports the Composer tag. That's great, but not enough to deal properly with a classical music collection. We need to support a bunch of other tags, like the Conductor, Performer and Orchestra tags. Adding support for such tags should not be very difficult, as many of them are part of the official ID3 specifications and already supported by ffprobe.

 

Classical music support is a very important feature for me and some other people. So important that I would even pay to have it added to Emby. If I can help to build it, I would do it very happily.

 

If developers do not wish to add those features, maybe it could be implemented by a 3rd-party plugin. In that case, could someone point me towards some kind of guide or tutorial to get started ? I know C# and .Net but have no idea about how Emby works with plugins, and how to extend the metadata schema.

 

Thanks!

 

Marin.

Edited by MarinBernard
  • Like 18
Link to comment
Share on other sites

Hi and thanks for answering,

 

I'm sorry; maybe that's not the proper way to call it. The screenshot below shows what I call content providers:

 

56927eeb2e4c7_embycontentproviders.jpg

 

Currently, there is one generic content provider for audio media called Music (or Musique in French). But there are 4 distinct content providers for video media (Movies, TV, Home videos and Music videos), as these need to be handled differently.

 

What I propose is to add another provider to the list which would be dedicated to classical music files. This would allow us to show the content of a music library in a way that fits classical music (for instance adding tabs to show lists of composers / conductors, while removing the Songs tab which would be useless in a classical music library).

 

Another change would be add support for a short list of specific audio tags (maybe 5 max.) which are both standard and important to support classical music. The Conductor tag could be one of them: it is officially supported by ID3 and is an almost standard tag in the FLAC/APE universe (I say almost because there is no real taxonomy standard with VorbisComment. MusicBrainz uses it as well as a lot of other tagging software).

 

Hope I'm clearer!

Edited by MarinBernard
  • Like 2
Link to comment
Share on other sites

wolfgang

 

What I propose is to add another provider to the list which would be dedicated to classical music files. This would allow us to show the content of a music library in a way that fits classical music (for instance adding tabs to show lists of composers / conductors, while removing the Songs tab which would be useless in a classical music library).

 

Another change would be add support for a short list of specific audio tags (maybe 5 max.) which are both standard and important to support classical music. The Conductor tag could be one of them: it is officially supported by ID3 and is an almost standard tag in the FLAC/APE universe (I say almost because there is no real taxonomy standard with VorbisComment. MusicBrainz uses it as well as a lot of other tagging software).

 

That indeed would be wonderful.

  • Like 1
Link to comment
Share on other sites

Deathsquirrel

This sounds beyond the purposes of a content provider entry.  Adding support for standard ID3 tags should be easy and doesn't require a new provider.  Adding UI to support the data would be client specific so might require multiple feature requests for the clients uou use.  Rebuilding the web UI to be classical-focused would likely require a plugin, assuming that sort of thing can be done through plugins.

 

Since lots of us have mixed libraries of many kinds of music I'd suggest starting with tag support as a focus.  It helps classical fans and doesn't hurt anyone else.  What are the tags you want?  I assume Conductor and Composer but you said about 5.  Assuming the tags are of that nature it would be good to support those entries as artist\people-type records with support in the web ui for displaying the new entries and allowing you to click them like any other artist record to see all the relevant works.  Once it exists in the server it can be added to clients.

  • Like 2
Link to comment
Share on other sites

Something similar to this?

 

Similar, yes. Do NFO files made by Emby need to be compatible with Kodi? If so, i seems Kodi needs to support them first.

 

 

This sounds beyond the purposes of a content provider entry.  Adding support for standard ID3 tags should be easy and doesn't require a new provider.  Adding UI to support the data would be client specific so might require multiple feature requests for the clients uou use.  Rebuilding the web UI to be classical-focused would likely require a plugin, assuming that sort of thing can be done through plugins.

 

Since lots of us have mixed libraries of many kinds of music I'd suggest starting with tag support as a focus.  It helps classical fans and doesn't hurt anyone else.  What are the tags you want?  I assume Conductor and Composer but you said about 5.  Assuming the tags are of that nature it would be good to support those entries as artist\people-type records with support in the web ui for displaying the new entries and allowing you to click them like any other artist record to see all the relevant works.  Once it exists in the server it can be added to clients.

 

 

Support also needs to be added for Vorbis. Many classical music lovers have files in lossless quality (mine are in FLAC) and use Vorbis Comments to tag them. I said 5 tags max. because I didn't want to scare the devs ;-) Dazed's pull request already mentions 3 of them: Conductor, Composer and Ensemble. I would add Performer and Work Title. The first four tags describe individuals or artists, so they may appear as People/Artists in search results. The last one is the title of the work which is performed; I put is as a bonus tag as it's not vital.

 

MusicBrainz Picard maintains a table of mappings between different tag formats. Most of those tags are officially supported by ID3 and are almost standard with Vorbis: http://picard.musicbrainz.org/docs/mappings/

 

Adding support for those tags would be great but we also need to be able to browse them. It would be sad to add a new shiny Conductor tag, have many tracks use it, and not to be able to show that data because no view is aware of it. The new Classical music content provider could be created by cloning the current Music provider. Doing it that way would allow client apps to browse classical music libraries the same way they currently do with pop music, as the current views could be kept as some kind of failover mechanism. New, classical-focused views could then be added to that new provider. These would be supported by the Web UI first; then client apps could be patched to support it too if there's a need for it.

 

By the way, Emby already includes largely unsupported content providers (like the Books or Games providers). If the new Classical music provider is able to expose the current pop music views to client apps which don't support the new ones, there wouldn't be any real compatibility problem, right ?

 

Thanks to everyone who's thinking about it!

 

Marin.

Link to comment
Share on other sites

I have finally found an online API which will reference "Composer" meta information. Not sure if it will work for classical music, or how large the database actually is.

 

 

https://freemusicarchive.org/api/docs/

 

 

Hilariously, this API will rate the "Dancability" for a song... but, it has a composer field.

Edited by chef
Link to comment
Share on other sites

Hi,

 

Some of us listen to classical music and maintain extensive collections of it. Unfortunately, proper classical music sorting requires different metadata fields than pop music. For example, the composer field is not very important with pop music, but is a big requirement with classical music.

 

Currently, Emby supports a single content type for music, which is tailored for pop music. It has views to list Artists, Album artists, Albums, Songs and Genre. I propose to create a second content type dedicated to classical music. This would be a very coherent move since there already are distinct content types for movies, series, concerts or home movies, even if they all deal with video files.

 

The views of this new content type would better fit classical music: for example, we would be able to list music by composer or by conductor, but not by song as this does not mean anything in classical music.

 

Furthermore, audio metadata support should be improved. Currently, Emby supports the Composer tag. That's great, but not enough to deal properly with a classical music collection. We need to support a bunch of other tags, like the Conductor, Performer and Orchestra tags. Adding support for such tags should not be very difficult, as many of them are part of the official ID3 specifications and already supported by ffprobe.

 

Classical music support is a very important feature for me and some other people. So important that I would even pay to have it added to Emby. If I can help to build it, I would do it very happily.

 

If developers do not wish to add those features, maybe it could be implemented by a 3rd-party plugin. In that case, could someone point me towards some kind of guide or tutorial to get started ? I know C# and .Net but have no idea about how Emby works with plugins, and how to extend the metadata schema.

 

Thanks!

 

Marin.

 

Hi, did I ask you in another thread to create an ffprobe sample from a file? if so, can you do that again so that I can see how we'll extract conductors and performers? we are already grabbing composers, just not displaying them in the UI. thanks.

Link to comment
Share on other sites

Hi,

 

Yes, you did! Here it is:

        "tags": {
            "BARCODE": "0028945758121",
            "TITLE": "Symphony No. 9: I. Andante comodo",
            "RELEASECOUNTRY": "DE",
            "TOTALDISCS": "1",
            "LABEL": "Deutsche Grammophon",
            "TOTALTRACKS": "4",
            "COMPOSERSORT": "Mahler, Gustav",
            "MUSICBRAINZ_ALBUMARTISTID": "8d610e51-64b4-4654-b8df-064b0fb7a9d9;509c772e-1164-4457-8d09-0553cfa77d64;3bce590b-479f-42ca-b9e0-82883e0db9a2",
            "COMPOSER": "Gustav Mahler",
            "DATE": "1998",
            "disc": "1",
            "TRACKTOTAL": "4",
            "MUSICBRAINZ_RELEASETRACKID": "9645565c-2f10-36c4-bb2c-8652d338db32",
            "ASIN": "B00000613T",
            "ALBUMARTISTSORT": "Mahler, Gustav; Chicago Symphony Orchestra, Boulez, Pierre",
            "ORIGINALDATE": "1998",
            "CONDUCTOR": "Pierre Boulez",
            "SCRIPT": "Latn",
            "WORK": "Symphony no. 9 in D major: I. Andante comodo",
            "MUSICBRAINZ_ALBUMID": "afadfeaf-0c05-4b49-a29a-023d3df63b08",
            "RELEASESTATUS": "official",
            "album_artist": "Gustav Mahler; Chicago Symphony Orchestra, Pierre Boulez",
            "CATALOGNUMBER": "457 581-2",
            "ALBUM": "Symphony no. 9",
            "MUSICBRAINZ_ARTISTID": "8d610e51-64b4-4654-b8df-064b0fb7a9d9",
            "MEDIA": "CD",
            "RELEASETYPE": "album",
            "ORIGINALYEAR": "1998",
            "PERFORMER": "Chicago Symphony Orchestra (orchestra)",
            "ARTIST": "Gustav Mahler",
            "DISCTOTAL": "1",
            "MUSICBRAINZ_RELEASEGROUPID": "3c6bd5af-cadd-335f-96f9-30960ed915d1",
            "MUSICBRAINZ_WORKID": "22cc1e5f-0796-3bbf-9cb4-61aea8825917",
            "MUSICBRAINZ_TRACKID": "3681c92f-cb85-4587-95dd-91e8ed72d472",
            "ARTISTSORT": "Mahler, Gustav",
            "ARTISTS": "Gustav Mahler",
            "track": "1"
        }

It's only the "tags" node. The full output of ffprobe is attached.

 

Further to the semicolon delimiter thread, note that MusicBrainz also uses the comma as an artist delimiter when dealing with classical music:

"album_artist": "Gustav Mahler; Chicago Symphony Orchestra, Pierre Boulez",

In classical context, the semicolon is used to separate composers from performers, and as such will only appear once in the string. But commas are used to distinguish between multiple composers or performers. In the example above, there is only one composer credited on the album (Gustav Mahler), but two performers: one orchestra and a conductor. So maybe adding the comma as a valid artist delimiter would also be needed.

 

Thank you for your time!

ffprobe-output-classical-music.txt

Edited by Marin
Link to comment
Share on other sites

wolfgang

I just wanted to thank you guys for your work on this. I'm really looking forward to see this feature implemented.

  • Like 1
Link to comment
Share on other sites

Could all people interested in that feature like the first post to bump the reputation score ? As of now, reputation is zero; this doesn't seem fair!

 

Thanks!

Link to comment
Share on other sites

  • 3 weeks later...

I think it would be better to extend our current music features to accommodate classical. Can you guys offer some suggestions on how we might do that?

Link to comment
Share on other sites

wolfgang

I'd love to help you. Basically, what we need is the support for (at least) the composer tag of the audio files. So you can sort by "Beethoven" (for example) and you can find all the albums/symphonies/whatever by Beethoven, Ludwig van. I personally tag the work, which may consist of several files (movements) as album. So it would go like Beethoven->Symphony 9. Inside Symphony 9 there would be the four files for the four movements.

 

This would be an enormous help. In an extended version there could be support for the artist too. This symphony has been recorded by both the Vienna Philharmonic Orchestra and the Berlin Philharmonic Orchestra (and 10000x more, but I keep it simple to explain ;). So it would be nice to choose the version, the recording. Like: Beethoven->Symphony 9->Vienna Philharmonic Orchestra.

 

I'm not sure which kind of information you need, but please don't hesitate to ask.

Link to comment
Share on other sites

Hi,

 

I think classical improvements may be split in two categories:

  1. Add support for new tags
  2. Add new tabs to the music view

I saw support was added for the 'composer', 'conductor', 'writer' and 'lyricist' tags. That's really great. Thanks for that!

I suggest to add support for some more tags, at least the ENSEMBLE and PERFORMER ones which are really needed for basic classical music management. That's what Kodi are doing right now with Kodi v17 (see the table at the bottom of this page: http://kodi.wiki/view/Music_tagging).

 

Afterwoods the real hard work will be to have Emby display actual data which were gathered from those tags. This means adding new tabs to the current music view to sort the library by composer or conductor. Those tabs could be disabled by default as most people won't use them. Users interested in these features them could enable them in the server preferences.

 

Thanks for what you are doing and the time you spend doing it.

Link to comment
Share on other sites

 

I saw support was added for the 'composer', 'conductor', 'writer' and 'lyricist' tags. That's really great. Thanks for that!

 

 

Hi Marin,

 

I don't believe "writer' and 'lyricist tags have made it into the server yet :(. I put in a pull request several weeks ago that is still pending. It is pretty easy to add tags..... if they fit into the existing model somewhere. Lyricist is just another person type and writer already exists just needed to be captured for music.

 

Please excuse my ignorance of classical music tagging.

 

Performer is a little more problematic. Picard tags pop music with performer(instrument etc) which kinda fits similar to actor-role. How does it work in classical music.

 

Same with Ensemble is that an "artist" or "band" for lack of a better term.  Are you looking for Ensembles to show up in the album artist, artist list ? or a separate tab?

 

You are correct that the display is where the heavy lifting is needed (@@Luke) :)​.

Maybe we can lobby for search to include people types, it was removed in recent releases. Then you could search for things like "conductor" and "lyricist".

 

 

-Vicpa

  • Like 1
Link to comment
Share on other sites

Hi Vicpa,

 

The 'performer' tag works exactly the same in classical music. The name of a performer may be followed by the name of the instrument she plays, between round brackets. This means the string should be parsed to remove the instrument suffix: this would allow us to store performers as regular instances of the Person type. Instrument info may just be discarded for now, as they are not as important as performer names. Support for them could be added later, if needed.

 

The 'ensemble' tag stores the name of a musical ensemble, which might be a band, an orchestra, a choir, or any other group of music players. The name of this tag is very generic and that's by design, to avoid the use of tens of specific tag names describing any kind of musical ensemble. I don't know if Emby has a Band or Group type, but any of those would fit.

 

Regarding the view:

 

In a classical music library, the "artist", "artists", and "album artist" tags are very seldom used, because they're too vague: an "artist" on a classical music track may be a composer, a conductor, a performer, a lyricist, a writer or an ensemble. That's why supporting those new tags is so important. Like many people, I still add regular "artist" / "album artist" tags to my music files to deal with music players which do not support advanced music tags (most of them don't). Yet, those tags only allow me to browse my media on limited devices. I don't use them if I can avoid it, and all classical lovers do the same.

 

That's why the "artist" and "album artist" tabs of the current music view are irrelevant with a classical music library, and need to be replaced with "Ensemble", "Performer", "Composer" and "Conductor" tabs. All those tabs would ideally list albums, not single tracks. Removing the "artist" / "album artist" tabs from the view would not fit popular music consumers, though: that's why I proposed to create a distinct content type in the first post of this thread. Another way of doing things would be to allow tabs to be enabled/disabled in the server preferences.

 

Now back to reality: yes, adding a way to search for a "conductor" or a "lyricist" would still be awesome!

 

Thanks!

 

Marin.

Link to comment
Share on other sites

wolfgang

The search option for composer should be top priority in this request. It would make Emby at least usable for classical music, a major improvement. In WebUI and all apps.

  • Like 2
Link to comment
Share on other sites

Hi All

 

Been having a little fun seeing just how far I can push the current Emby server. There is little chance that my code changes would ever make it into the server, but perhaps they can demonstrate a proof of concept that you folks can discuss and refine and then lobby with the server team. By no means am I suggesting this as a finished product. Simply one example of the kind of enhancements that would benefit emby music users and work for multiple genres. 

 

Marin I know your op was about classical music specifically but my library genre that would most benefit from enhancements is "jazz". I think it was agreed that there were enough commonality between all  genres.

 

So for background I added "lyrist", "writer" and "performer" person types, built a server rev and gave it a go. My music library is approx. 1500 albums, 16,000 songs and 1000 artists.   With "People Search" back !!! I was encouraged by the results and the flexibility of the server. (always amazed by that)

 

The track detail is pretty close to what I would want.

 

 

56c722797826f_Miles.png

 

 

and the navigation

 

56c722c398d92_Miles2.png

 

This is where it got fun for me I have "Wynton Kelly" as an artist, but in the jazz world performing credits are almost as important.

 

56c724fa0fade_miles3.png

 

Search gets me a pretty good picture. and now a playlist say "Grant Green (guitar)" is going to prove interesting.

 

 

Anyway just a starting place for discussion. Not a finished product.

 

-Vicpa.

 

 

  • Like 4
Link to comment
Share on other sites

  • 1 month later...
wolfgang

PUSH!
 

Dear Emby-people, what about classical music? Haven't heard any news about for ages..

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

Currently looking at Emby as a Music Server to possibly replace Plex and Sonos, and thus researching what is possible with Emby, so I took the liberty of reanimating this thread (I hope there aren't too many others, more relevant ones?).

 

Where might I find those 'composer' and 'conductor' tags?

 

I saw support was added for the 'composer', 'conductor', 'writer' and 'lyricist' tags. That's really great. Thanks for that!

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...