Kodi Community Forum

Full Version: Music Info dialog for Artists container 50 discography
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
This is for the musicinformation dialog in Beta 5 release.

This dialog sets items for container(50) depending on the content type of the item in focus in music window when dialog is launched.

For content of "artists", container(50) is supposed to be the artist's "discography". This is filled from the scraped artist (stored in "discography" table in the database).

I guess I can see the use case for this (though universal artist scraper only returns release type "album" from musicbrainz). I think it would be a feature if there was some way to indicate which of the scraped discography the user has in the db. As it is, the only way I see is to select each entry in turn and see what the results are (of course you can go back to the music window and select the artist there).

Also there seems like a bug, in that when there is no discography for an artist, container(50) is getting a single entry with no infolabel.

scott s.
.
You can checkout what I've done in Mimic. There is an Albums tab with thumbs of local albums, and a Discography tab with labels for all albums. The discography items that are in the local database are identified by the play symbol.

I hide the discography button when the item has no label, to take care of that case with the blank item.

Code:
<visible>!String.IsEmpty(Container(50).ListItem.Label)</visible>

https://github.com/braz96/skin.mimic/tree/kodi18

Image
By coincidence I have been thinking about the discography facility, and how it could be so much better. To see it at its worst look at it for an orchestra - lots of albums called "Symphony ..." (which composer? without the other artists the album is unidentified), and probably none of the ones you have in your collection.

I think we should be linking the discography to the albums in your collection (and so can play) at a database level, then that fact can easily be available to the skin. Other team members want to cleanup the way this (and other) dialog is implemented in core. And finally we could be more selective with what we do when, like for orchestras, the scraper returns a large disography. All that is for a later version of course.

For now I guess the availability of album art is one ugly way to know that the discography item is also an album.

Braz I have never used Mimic, my knowledge of skins is very limited, but I notice there is no refresh button on that dialog. While scraper success is very intermitent (server overload issues), it is useful to be able to requery the info for an artist, does Mimic offer that some other way?
@DaveBlake, the button bar contains a refresh button, when it has the focus there is an arrow showing that there are more items to the right.

The local albums in the discography list can be played in Mimic. Just click an album that has a play icon, then click play on the album info dialog. Just requires the Play Album Script.
Should clarify that these Mimic features are only on GitHub at the moment, they are not in the repo version.
Thanks for that info Braz.

I am always unsure about where UI functionality belongs core or addons e.g. should core provide the means to play albums from the discography, or is it left to a script?

While also future dreaming for the artist inof dialog I would like to optionally be able to see the different roles an artist plays e.g. composer, backing vocals, drummer, producer etc, and then maybe link to those songs (or their albums). Then perhaps this makes the dailog too navigational?
braz, will take Mimic for a spin. Always enjoy seeing what ideas skinners can come up with. I did add the script.playalbum for musicinfo dialog (for albums) as it seems nice to be able to play from the dialog.

Something I was trying to work on for classical, is that I probably violate all the musicbrainz rules but I define a classical "album" as a single "work" such as a symphony, regardless of how it is physically packaged so a CD typically is broken down into several "albums" with the track files residing in a single folder that represents the actual CD. Then, for example, the individual "movements" are treated as "songs". That works for me, but the problem is I don't have any way of getting role data for these "albums". Since I might be the only one in the world who treats classical this way, I haven't worked too hard on the idea. But this is thread drift as it differs from musicinfo dialog for artists. I haven't really looked much at what the music info dialog could do for "role" artists. As it is right now for my Aeon MQ5 mod, the dialog shows nothing for role artists, except composers as I have always set album artist (with my classical album definition) to the composer, so these will be scraped.

scott s.
.
I sure would not want to break my classical albums down like that Scott. It sounds like you are trying to find your way to the concept of "work" e.g. symphony no. 4, something that is supported in tagging and I hope to add one day to Kodi. But a bit lost by what else you were saying? If it was about scraping info for lesser artists e.g. producers or musicians etc., it is surprizing what people have biog info on Musicbrainz. And you may not realise that although Kodi skips scraping these artists by default, you can scrape from say the list of producers if you wanted. Most would be blank, but not all.

I think it is pop music where seeing the roles for an artist could be most interesting, where one well known artist has done other things on other albums. One way to pick up covers of songs, or when they sang backing vocals etc.

But I may have missef what you were saying totally!
(2016-11-24, 12:18)scott967 Wrote: [ -> ]braz, will take Mimic for a spin. Always enjoy seeing what ideas skinners can come up with. I did add the script.playalbum for musicinfo dialog (for albums) as it seems nice to be able to play from the dialog.
Looks like there's also a way to play albums from music info dialog without the script...

http://forum.kodi.tv/showthread.php?tid=...pid2462697

If you want to test the latest Mimic version in Kodi 17, download and install this zip:

https://github.com/braz96/skin.mimic/archive/master.zip

Note that this version is using the developmental version of skin.helper.service that was just released, best to also install marcelveldt's beta repo if you want to test those features. See http://forum.kodi.tv/showthread.php?tid=...pid2460890
(2016-11-24, 19:24)braz Wrote: [ -> ]Looks like there's also a way to play albums from music info dialog without the script...

http://forum.kodi.tv/showthread.php?tid=...pid2462697

If you want to test the latest Mimic version in Kodi 17, download and install this zip:

https://github.com/braz96/skin.mimic/archive/master.zip

Note that this version is using the developmental version of skin.helper.service that was just released, best to also install marcelveldt's beta repo if you want to test those features. See http://forum.kodi.tv/showthread.php?tid=...pid2460890

Playing an album that way I think only works if the music source is organized as artist/album.

I looked at musicinfo in your skin and it's very nicely done.

BTW I think you have some typos on the panel 90050 for roles: composer should be 29903 and conductor 29905 vice 29003/29005.

scott s.
.
(2016-11-29, 02:16)scott967 Wrote: [ -> ]Playing an album that way I think only works if the music source is organized as artist/album.

I looked at musicinfo in your skin and it's very nicely done.

BTW I think you have some typos on the panel 90050 for roles: composer should be 29903 and conductor 29905 vice 29003/29005.

scott s.
.
Thanks, and thanks for pointing out the mismatched labels. Looks like I'll be removing that entire list of roles now that they are visible in list #50 though.

Having problems getting everything to work though, String.IsEqual(ListItem.DBTYPE,song) and Window.Is(songinformation) don't seem to work consistently. Almost wish there was still a separate dialog for song info. And when I click on one of the roles it blanks out the entire music info dialog, not sure what's it's supposed to display.
(2016-11-29, 03:04)braz Wrote: [ -> ]Thanks, and thanks for pointing out the mismatched labels. Looks like I'll be removing that entire list of roles now that they are visible in list #50 though.

Having problems getting everything to work though, String.IsEqual(ListItem.DBTYPE,song) and Window.Is(songinformation) don't seem to work consistently. Almost wish there was still a separate dialog for song info. And when I click on one of the roles it blanks out the entire music info dialog, not sure what's it's supposed to display.

Since I added this to core I will help in anyway I can, although I am still on the learning curve for skinning. Clicking on one of the "contributors" ( it is a list of roles and the artist that contributes that function to the song) calls the artist info dialog for that artist.

Maybe a look at the changes that I made to Estuary in the PR will help - I got it to work there so it can't be that complicated as I really don't know what I'm doing in skins.

In Confluence it only takes 2 lines, even easier.

Code:
Includes.xml inserted at line 76
<value condition="Container.Content(Songs)">$INFO[ListItem.Label,[COLOR=selected][B],[/B][/COLOR] - ]$INFO[ListItem.Label2]</value>

Moded libe 182 of DialogMusicInfo.xml
<include content="MusicInfoPanel" condition="String.IsEqual(ListItem.DBTYPE,artist) | String.IsEqual(ListItem.DBTYPE,album)">

I hope that gives you some ideas.

There is also a small test music db with data for all this stuff here https://www.dropbox.com/s/2ka9aba9dfimov...st.db?dl=0 in case you don't have it populated from your own tag data.
(2016-11-29, 10:22)DaveBlake Wrote: [ -> ]
(2016-11-29, 03:04)braz Wrote: [ -> ]Thanks, and thanks for pointing out the mismatched labels. Looks like I'll be removing that entire list of roles now that they are visible in list #50 though.

Having problems getting everything to work though, String.IsEqual(ListItem.DBTYPE,song) and Window.Is(songinformation) don't seem to work consistently. Almost wish there was still a separate dialog for song info. And when I click on one of the roles it blanks out the entire music info dialog, not sure what's it's supposed to display.

Since I added this to core I will help in anyway I can, although I am still on the learning curve for skinning. Clicking on one of the "contributors" ( it is a list of roles and the artist that contributes that function to the song) calls the artist info dialog for that artist.

Maybe a look at the changes that I made to Estuary in the PR will help - I got it to work there so it can't be that complicated as I really don't know what I'm doing in skins.

In Confluence it only takes 2 lines, even easier.

Code:
Includes.xml inserted at line 76
<value condition="Container.Content(Songs)">$INFO[ListItem.Label,[COLOR=selected][NEGATIVE SQUARED LATIN CAPITAL LETTER B],[/B][/COLOR] - ]$INFO[ListItem.Label2]</value>

Moded libe 182 of DialogMusicInfo.xml
<include content="MusicInfoPanel" condition="String.IsEqual(ListItem.DBTYPE,artist) | String.IsEqual(ListItem.DBTYPE,album)">

I hope that gives you some ideas.

There is also a small test music db with data for all this stuff here https://www.dropbox.com/s/2ka9aba9dfimov...st.db?dl=0 in case you don't have it populated from your own tag data.
Thanks Dave, I think I figured out my issues, should be working correctly in Mimic now.