• 1
  • 10
  • 11
  • 12(current)
  • 13
  • 14
  • 24
Managing music albums Box-Sets properly with KODI library feature
(2019-11-24, 06:54)scott967 Wrote: I still have the problem where I can get $INFO[Player.art(album.discart)] if it is in the database, but not $INFO[Player.art(album.discart1)], $INFO[Player.art(album.discart2)] etc.  (the discart1, discart2  show up in the musicdb art table as expected.)  The intent is that discart1 is the art for the first disc of the set etc. 

Is there a reason you are wanting to get the art for a disc that isn't playing (I presume that's what you're after)?  The thumbloader automatically puts the right cover art and disc art into Player.Art(discart) but it removes the disc number from it.  That was intentional so that skins only need one item to display the right art.

I have a change for this that lets you use discart1, discart2 etc but note that discart on its own with no number will always contain the art for the currently playing disc.  Do you specifically want it prefaced with album. so it's album.discartN ?  Currently it's just $INFO[Player.Art(discartN)] where N is a valid disc number.
Learning Linux the hard way !!
Reply
There was a discussion with some of the skinners on the team (on team Slack) about player art map, disc art in particular. I'm not sure now if what was implemented for this feature incorporated that or not. But anyway I think it good to pull it into anything implemented in response to Scott's comments.


daveblake:  Yet another question for my skinning friends, this time about the art map. Where would you expect the (round) disc art for a playing song to be in  Player.Art(discart)  or Player.Art(album.discart), both neither?

My guess would be Player.Art(discart) with an internal fallback to the art held for the album - all songs on a album often have the same art, but on a multi-disc release each disc can have different disc art and cover (thumb)

Hitcher:  Maybe both? So discart can be used specifically for songs and album.discart for the album art. Then skinners have the choice.

jurialmunkey: Only art(discart) as only albums have discart anyway, so the prefix is redundant (ie you would never have "artist.discart")For multidisc, song should have art(discart) of the disc it is from.Album should have art(discart) as first disc and also art(discart.1) art(discart.2) etc so each disc can also be referenced individually at the album level.

rmrector:
I suggest Kodi doesn't care about whether a prefix is redundant to keep it all simple and generic. From a song ListItem pull all album artwork with ListItem.Art(album.*). I also really don't like fallbacks so I'd say Player.Art(discart) should only pull song (and "disc" artwork for now) discart and empty if it isn't set, no fallback to album.discart. Then skinners have the choice for fallback behavior.


(2019-11-24, 12:06)black_eagle Wrote: I have a change for this that lets you use discart1, discart2 etc but note that discart on its own with no number will always contain the art for the currently playing disc.  Do you specifically want it prefaced with album. so it's album.discartN ?  Currently it's just $INFO[Player.Art(discartN)] where N is a valid disc number.
I don't think $INFO[Player.Art(discartN)] makes sense - the player is playing a song from a disc, the song does not have other discs. The album may have other discs, but if accessing album art then use the album prefix
Reply
(2019-11-24, 13:20)DaveBlake Wrote: The album may have other discs, but if accessing album art then use the album prefix

The current implementation of the thumbloader doesn't do that though.  For discart it only sets Player.Art(discart) with the art for the currently playing disc and ignores all the others.  It also doesn't set any album.discartN currently.  It's only one extra line to change that though.  Judging by your comments, you want it prefixed by album. so it's clear that it's referring to album art.

With this change, Player.Art(discart) will always show the correct discart for the currently playing song (assuming it's set).  Other discart will be accessible through album.discartN where N is a valid disc number and there is some art to show.  If an album is a single disc then it's unlikely that there will be a number (or that you want to access other art Huh) but album.discart (no number) will work in that case.

I think that covers all use cases.
Learning Linux the hard way !!
Reply
@black_eagle honestly I need reminding if Player.Art(album.XXXX) gets populated where XXXX is any album art type. Song gets thumb (cover) via fallback from album or disc and that lives in Player.Art(thumb), but that fallback is historic and new album art types don't fall back. Disc art (and I mean art per disc and not "discart" art type, which is the art a disc is most likely to have, with thumb/cover the other) is lurking somewhere in the middle. The possibility of multiple discs with different art type X each, and the album also having art type X and it being diferent from all the discs (as can happen with covers in a boxed set) makes life a little more complicated. I'm not sure skinners are aware of that possibility because it is not obvious for discart (which an album isn't going to have a separate image for) , or how best to present the art for them to use.

In principle when playing a song they may also want access to the album art, but when that album has multiple discs then temptation is to make any art specific to the disc that song is on  (cover and discart say) into song art. But then generically we could end up with album.XX1, album.XX2... and XX, for multiple disc albums, and only album.XX for single disc. 

So need to think this through a bit, and keep in sight that disc art and discart are not the same thing!
Reply
Ha, you sneaked in a edit cross-post @black-eagle
(2019-11-24, 14:22)black_eagle Wrote: I think that covers all use cases. 
Are you sure? Smile

Make me happy and think about a new art type for albums/discs called "wibble", wibble.jpg may be located in album folder or separately in disc subfolders. How is the skin access to this art going to work for the playing song?

(BTW I am delighted to be able to off load some thinking onto someone else)
Reply
(2019-11-24, 15:25)DaveBlake Wrote: Are you sure? Smile

Yep Smile

Taking your example of 'wibble', I tried this.

Image

Arttype is named wibbleX where X is the disc number.  The files are named WibbleX.png.

Image


The disc art shown in that screen shot is obtained by $INFO[Player.Art(album.wibble1)]. wibble2 would show the right art for the disc that's playing (as it's disc two).  Player.Art(discart) still shows the correct art for the currently playing song. Good enough ?

Better screenshot showing the path to the art under the track info

Image

Variable code from Variables.xml

php:
<variable name="PlayerInfoDiscArtVar">
<value condition="!String.IsEmpty(Player.Art(album.wibble1))">$INFO[Player.Art(album.wibble1)]</value>
<value condition="!String.IsEmpty(Player.Art(discart))">$INFO[Player.Art(discart)]</value>
<value condition="!String.IsEmpty(Player.Art(album.discart))">$INFO[Player.Art(album.discart)]</value>
<value condition="!String.IsEmpty(Window(Visualisation).Property(srh.RealCDArt))">$INFO[Window(Visualisation).Property(srh.RealCDArt)]</value>
<value>$INFO[Window(Home).Property(SkinHelper.Player.Art.Discart)]</value>
<value>$INFO[Player.Folderpath]/cdart.png</value>
<value>$INFO[Player.Folderpath]cdart.png</value>
</variable>

Database contents of the art table

Image

Convinced any Huh
Learning Linux the hard way !!
Reply
My main interest was (is) is displaying the discart from the cd of the current playing song.  Possibly also for  (offset) for other songs on the playlist.  My current skin code provides a $VAR that cycles through conditions
Code:
condition="!String.IsEmpty(Player.Art(album.discart5)) + Integer.IsEqual(MusicPlayer.discnumber,5)"
down through discart1, finally
Code:
condition="!String.IsEmpty(Player.Art(album.discart))"
and that worked but required users to manually add discart1 -- discart5 to the album art.

This existing method no longer works with the PR because Player.Art(album.discartn) no longer returns an art.  If the preferred method now is Player.Art(discart) that's OK (it does work for me).

Something else though is the possibility of showing all the discarts at once for a boxset listitem, as is done in some skins now for movie collections.

scott s.
.
Reply
(2019-11-26, 05:08)scott967 Wrote: Something else though is the possibility of showing all the discarts at once for a boxset listitem, as is done in some skins now for movie collections.

Yes, that's certainly a valid use case and I will add it but not in this PR.  I managed (once again!) to royally stuff up my local github branch and although I think I've recovered it I really don't want to push anything else just in case.  I've already managed to make quite a mess of things twice before!. 

Hopefully Dave can get it merged before it needs a rebase.
Learning Linux the hard way !!
Reply
(2019-11-26, 05:08)scott967 Wrote: Something else though is the possibility of showing all the discarts at once for a boxset listitem, as is done in some skins now for movie collections.

I know this isn't exactly what you meant, but after I'd read that it triggered something in my head and I sat and had a play with Estuary for a while.  Decided it would be quite cool if you have disc art to actually show it when the disc node opens.  So I modded the two wall views.

Pick an album from the full list of albums.

Image

and open it.

Image

If no discart, fall back to cover(s).

Image

If discs have multiple covers as well as discart, show the correct cover for the selected disc in the left pane.

Image

I'm quite looking forward to seeing what someone who understands this stuff much better than I can achieve. I'm pleased with how that's turned out though.

I'd like to say a big thank you to anyone that's helped out, encouraged, criticized, or otherwise aided me. I'd particularly like to thank @DaveBlake , who has been an absolute star. Thank you!
Learning Linux the hard way !!
Reply
I've just got a new 8 cd boxset which I have ripped to flac files.

I'm using mp3tag ver 2.99a on windows 10 for tagging and I'm not sure which field to set to Boxset to test this out

all 8 discs are marked 1/8, 2/8 etc and have individual disc titles

but looking at the extended tags available in mp3tag there does not appear to be a releasetype tag

the only relevant one looks like MUSICBRAINZ_ALBUMTYPE, is this the correct tag ?

I dont use Musicbrainz for tagging  so no other musicbrainz field is set would this matter ?

Tim
Reply
(2019-11-30, 04:04)tkgafs Wrote: all 8 discs are marked 1/8, 2/8 etc and have individual disc titles

If the discs are tagged with individual disc titles as you say, then that should be all that you need.  Kodi should automatically mark it as a boxset. 

You only need the tag setting if
  • you think it should be a boxset but there are no individual disc titles (in which case, Kodi will generate 'Disc 1, Disc 2' etc) or
  • you want to force a 2 disc or compilation album to be a boxset.
  If an album is marked as a compilation in the tags (TCMP for id3v2.4) or it automatically determines it's a compilation from an artist/mbid combo then Kodi won't make it into a boxset without the flag.
Learning Linux the hard way !!
Reply
(2019-11-30, 11:14)black_eagle Wrote:
(2019-11-30, 04:04)tkgafs Wrote: all 8 discs are marked 1/8, 2/8 etc and have individual disc titles

If the discs are tagged with individual disc titles as you say, then that should be all that you need.  Kodi should automatically mark it as a boxset. 

You only need the tag setting if
  • you think it should be a boxset but there are no individual disc titles (in which case, Kodi will generate 'Disc 1, Disc 2' etc) or
  • you want to force a 2 disc or compilation album to be a boxset.
  If an album is marked as a compilation in the tags (TCMP for id3v2.4) or it automatically determines it's a compilation from an artist/mbid combo then Kodi won't make it into a boxset without the flag. 

Thanks for update, I presume I'll need to rescan my existing library to pickup albums which would qualify to be classed as boxsets.

Does it work with confluence skin or is it limited to Estuary at the moment ?
Reply
Thanks for update, I presume I'll need to rescan my existing library to pickup albums which would qualify to be classed as boxsets.

test builds no longer seem to be available ?

tried a couple of links in this thread and both reported file not found
Reply
It's been merged so this functionality is now available in Matrix v19 Nightly builds.
Reply
(2019-11-30, 17:01)jjd-uk Wrote: It's been merged so this functionality is now available in Matrix v19 Nightly builds.

Thanks
Reply
  • 1
  • 10
  • 11
  • 12(current)
  • 13
  • 14
  • 24

Logout Mark Read Team Forum Stats Members Help
Managing music albums Box-Sets properly with KODI library feature0