Kodi Community Forum
"cdArt" concept - current cdImage with artist fanart support in music visualizations - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Meta-Data provider and Artwork Packs (https://forum.kodi.tv/forumdisplay.php?fid=71)
+--- Thread: "cdArt" concept - current cdImage with artist fanart support in music visualizations (/showthread.php?tid=53242)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29


- snowdrift - 2009-09-15

Works for me. This is how I've got the background fanart being displayed in my/ronies alteration of this mod (in musicvisualisation.xml). Though I changed the multiimage to a largeimage as I only want a single image in the background rather than a fading slideshow. It now looks like this, the line in red gets the fanart from where the music lives. Note that I'm getting my fanart from <music path>/<artist>/<album>/ as I have some "Various Artist" albums and just using the <music path>/<artist>/ obviously isn't going to pick up the right ones. It does mean that you need the same (or different) fanart under each album, but there you go.

Code:
<control type="largeimage">
          <description>artist slideshow</description>
          <posx>0</posx>
          <posy>-</posy>
          <width>1280</width>
          <height>720</height>
    [color=Red]<texture>$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/fanart.jpg</texture>[/color]
          <aspectratio>keep</aspectratio>
          <visible>!Visualisation.Enabled + Player.HasAudio</visible>
    </control>

Note that the line you need for the original fading slideshow-style multiimage backgrounds, if you have you fanart under the <album> folder, is:

Code:
[color=Red]<imagepath>$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/</imagepath>[/color]

or, if you have fanart under the artist:

Code:
[color=Red]<imagepath>$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/</imagepath>[/color]

Hope that helps.


- reaven - 2009-09-15

Ram2000 Wrote:Would I be right in saying that we can now have Fanart in the music folder So would no longer need to rebuild the folder Dir In the backdrops folder.
Only reason I ask is after reading this HERE

this was discuss before in fact by Ronie, you can load the fanart from the music folder but it CAN'T be an slideshow(if your music is in remote share) just single image that why you need to use the largeimage control and NOT the multiimage control.

multiimage = local share
largeimage = remote share and local

but the code snow.. post here is good to view fanart in album view...


- snowdrift - 2009-09-15

I'm not sure thats true. I originally had it as your original multi-image control and all my music (and therefore images) are on a remote NAS drive and it worked fine, i.e. each fanart item displayed one after the other when in the music visualisation view with your spinning cd art.

Well, when I say fine, there was a massive delay accompanied by a lockup of the screen as it loaded the next image from the NAS drive over the network. That being said, I don't specify the path using the "SMB://" prefix, as I'm on a Mac, my NAS disk is mounted on "/Volumes/Data/Music/..." and I specify the path like that...I don't know whether that makes a difference.


- snowdrift - 2009-09-15

OK, I have another question of my own. The skin is working fine BTW, its about how my music is organised, but someone more skilled than me might know the answer!!

Regarding the spinning CD image and related to the "fanart in the same place as the music mod", I have a strange situation where (in order to maintain compatibility with iTunes) most of my albums live in the following structure:

/Volumes/Data/Music/<artist>/<album>, e.g. /Volumes/Data/Music/Moby/18

but compilations (albums by various artists) are organised differently:

/Volumes/Data/Music/Compilations/<album>, e.g. /Volumes/Data/Music/Compilations/The Annual 2009

How can I first try to load the cd image from the "normal" artist path, then the "compilations" path, then if nothing is found use the default.png overlay?

I've tried various combinations of the following, but nothing works properly, its almost as if i need a "if no cd art in "normal" path + no cd art in "compliations" path then use default.png" clause, any way to do this in the xml?

Code:
<control type="image">
            <description>Cd overlay</description>
            <animation effect="slide" start="-118" end="0" time="700" tween="cubic" easing="out" delay="1000">WindowOpen</animation>    
            <animation type="WindowClose">
            <effect type="slide" start="0" end="-114" time="700" tween="cubic" easing="in" delay="0"/>
            <effect type="fade" start="100" end="0" time="1300"/>
            <condition type="!Player.Playing"/>
            </animation>
           <animation effect="rotate" end="-360" center="auto" time="2000" loop="true" reversible="false" condition="!Player.Paused">Conditional</animation>
            <width>270</width>
            <height>228</height>
            <posx>175</posx><!-- 112 -->
            <posy>-143</posy><!-- -143 -->
            [color=red]<texture fallback="backdrops/artist_fanart/default/default.png">$INFO[Skin.String(cdartpath)]/Compilations/$INFO[MusicPlayer.Album]/cd.png</texture>[/color]
            <aspectratio align="bottom">keep</aspectratio>
        </control>
        
        <control type="image">
            <description>Cd overlay</description>
            <animation effect="slide" start="-118" end="0" time="700" tween="cubic" easing="out" delay="1000">WindowOpen</animation>
            <animation type="WindowClose">
            <effect type="slide" start="0" end="-114" time="700" tween="cubic" easing="in" delay="0"/>
            <effect type="fade" start="100" end="0" time="1300"/>
            <condition type="!Player.Playing"/>
            </animation>
           <animation effect="rotate" end="-360" center="auto" time="2000" loop="true" reversible="false" condition="!Player.Paused">Conditional</animation>
            <width>270</width>
            <height>228</height>
            <posx>175</posx><!-- 112 -->
            <posy>-143</posy><!-- -143 -->
            [color=red]<texture fallback="backdrops/artist_fanart/default/default.png">$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/cd.png</texture>[/color]
            <aspectratio align="bottom">keep</aspectratio>
            <!--<visible>!Control.IsVisible(110)</visible>-->
        </control>



- reaven - 2009-09-16

snowdrift Wrote:OK, I have another question of my own. The skin is working fine BTW, its about how my music is organised, but someone more skilled than me might know the answer!!

Regarding the spinning CD image and related to the "fanart in the same place as the music mod", I have a strange situation where (in order to maintain compatibility with iTunes) most of my albums live in the following structure:

/Volumes/Data/Music/<artist>/<album>, e.g. /Volumes/Data/Music/Moby/18

but compilations (albums by various artists) are organised differently:

/Volumes/Data/Music/Compilations/<album>, e.g. /Volumes/Data/Music/Compilations/The Annual 2009

How can I first try to load the cd image from the "normal" artist path, then the "compilations" path, then if nothing is found use the default.png overlay?

I've tried various combinations of the following, but nothing works properly, its almost as if i need a "if no cd art in "normal" path + no cd art in "compliations" path then use default.png" clause, any way to do this in the xml?

Code:
<control type="image">
            <description>Cd overlay</description>
            <animation effect="slide" start="-118" end="0" time="700" tween="cubic" easing="out" delay="1000">WindowOpen</animation>    
            <animation type="WindowClose">
            <effect type="slide" start="0" end="-114" time="700" tween="cubic" easing="in" delay="0"/>
            <effect type="fade" start="100" end="0" time="1300"/>
            <condition type="!Player.Playing"/>
            </animation>
           <animation effect="rotate" end="-360" center="auto" time="2000" loop="true" reversible="false" condition="!Player.Paused">Conditional</animation>
            <width>270</width>
            <height>228</height>
            <posx>175</posx><!-- 112 -->
            <posy>-143</posy><!-- -143 -->
            [color=red]<texture fallback="backdrops/artist_fanart/default/default.png">$INFO[Skin.String(cdartpath)]/Compilations/$INFO[MusicPlayer.Album]/cd.png</texture>[/color]
            <aspectratio align="bottom">keep</aspectratio>
        </control>
        
        <control type="image">
            <description>Cd overlay</description>
            <animation effect="slide" start="-118" end="0" time="700" tween="cubic" easing="out" delay="1000">WindowOpen</animation>
            <animation type="WindowClose">
            <effect type="slide" start="0" end="-114" time="700" tween="cubic" easing="in" delay="0"/>
            <effect type="fade" start="100" end="0" time="1300"/>
            <condition type="!Player.Playing"/>
            </animation>
           <animation effect="rotate" end="-360" center="auto" time="2000" loop="true" reversible="false" condition="!Player.Paused">Conditional</animation>
            <width>270</width>
            <height>228</height>
            <posx>175</posx><!-- 112 -->
            <posy>-143</posy><!-- -143 -->
            [color=red]<texture fallback="backdrops/artist_fanart/default/default.png">$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/cd.png</texture>[/color]
            <aspectratio align="bottom">keep</aspectratio>
            <!--<visible>!Control.IsVisible(110)</visible>-->
        </control>

I dont know if you can use the IsEmpty() tag to verify if the folder have any image ?

the problem with iTunes is if you modify something in the structure it will maybe bring some problems with itunes in the future but I dont know.

I hate itunes myself I have an ipod but I use this


- snowdrift - 2009-09-16

Yep, you're right. I think the easiest solution, rather than hacking the xml, is to ditch iTunes and rearrange my music folder to better suit XBMC.

Anyway, thanks for an awesome mod. Its working great for me here and everyone is impressed when the CD starts spinning! Nod


- joebrady - 2009-09-18

Deleted all my image posts here to try to shorten this thread some, as they are now uploaded to xbmcstuff.com. Would suggest that others do the same.

Reaven: Possible you could update the fisrt post with samples of code for "remote" and "local" media?


white square - rlanfran - 2009-09-25

After an update to the last svn version, a rotating white square replaces the default cdart. I use Transparency skin.

Any idea for fixing it ?


- reaven - 2009-09-25

rlanfran Wrote:After an update to the last svn version, a rotating white square replaces the default cdart. I use Transparency skin.

Any idea for fixing it ?

thats a question for Ronie ...


- Ram2000 - 2009-09-25

rlanfran Wrote:After an update to the last svn version, a rotating white square replaces the default cdart. I use Transparency skin.

Any idea for fixing it ?
Im guessing this has to do with the svn issue described here

Quote: Originally Posted by spock84 View Post
My bet here is that these are all for some reason read in succession, after the scraper-generated picture is read, meaning that if there's no picture in the video folder, you eventually just get the white rectangle. This theory makes sense, since you/I initially see the correct thumb, which is then covered with the entirely white rectangle(s).

I updated mine and this has since been fixed try a fresh update.

Quote:Deleted all my image posts here to try to shorten this thread some, as they are now uploaded to xbmcstuff.com. Would suggest that others do the same.

Good Idea have cleaned mine out as well.


- tsoek - 2009-09-28

I've been pulling my hair out all day trying to get the fanart to display. Using Aeon Stark and I apt-get'd the latest svn XBMC. As it stands, I have a nice cd cover sleeve and a nice spinning cd that show up fine. (except for an album with various artists, unless I change every artist to be something the same but then they lose the credit due..)

Anyway, my fanart is displaying as just a black background, and I have been trying to get it to load fanart.jpg's from the album folders. My music is stored in a local folder on my linux box "/home/xbmc/music/". Inside there for example I have one artist "deadmau5" and inside that folder is an album titled "lack of a better name". Inside the "deadmau5" artist folder is a fanart.jpg and a folder.jpg, and same thing with the album folder. A picture is worth a thousand words.

My MusicVisualisation.xml looks like this in the relevant section. Or is this not the right spot and this is why it's not working?

[HTML]<control type="largeimage">
<description>artist slideshow</description>
<posx>0</posx>
<posy>-</posy>
<width>1280</width>
<height>720</height>
<texture>$INFO[Skin.String(cdartpath)]/$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/fanart.jpg</texture>
<aspectratio>keep</aspectratio>
<visible>!Visualisation.Enabled + Player.HasAudio</visible>
</control>[/HTML]

In guisettings.xml I have:
[HTML]
<setting type="string" name="Aeon Stark.cdartpath">/home/xbmc/music/</setting>[/HTML]

From all the reading of this post and others linked from here I also played around with MyMusicNav.xml which has the following two controls as well:
[HTML] <!--- album fanart for songs view --->
<control type="largeimage" id="104">
<include>FullscreenDimensions</include>
<visible>[Control.IsVisible(57) | Control.IsVisible(50) | Control.IsVisible(53)] + IsEmpty(listitem.property(fanart_image)) + !IsEmpty(ListItem.Path) + Container.Content(songs) + !Skin.HasSetting(nomusicfanart)</visible>
<fadetime>400</fadetime>
<texture>$INFO[Skin.String(cdartpath)]/$INFO[ListItem.Artist]/fanart.jpg</texture>
<include>Animation_FanartFade</include>
</control>


<!--- album fanart for albums view --->
<control type="largeimage" id="105">
<include>FullscreenDimensions</include>
<visible>[Control.IsVisible(57) | Control.IsVisible(50) | Control.IsVisible(53)] + IsEmpty(listitem.property(fanart_image)) + IsEmpty(ListItem.Path) + Container.Content(albums) + !Skin.HasSetting(nomusicfanart)</visible>
<fadetime>400</fadetime>
<texture>$INFO[Skin.String(cdartpath)]/$INFO[ListItem.Artist]/fanart.jpg</texture>
<include>Animation_FanartFade</include>
</control>[/HTML]

Another thing, my progress bar and current time in the song aren't displaying correctly. The text for the time is pretty tiny and the progress bar isn't showing at all, but this isn't a big deal because I'd just much rather see a nice background picture along with the album cover and cdart. Thanks for this mod, it's really awesome despite my inability to get it to work yet Smile


- snowdrift - 2009-09-28

Code:
<control type="largeimage">
          <description>artist slideshow</description>
          <posx>0</posx>
          <posy>-</posy>
          <width>1280</width>
          <height>720</height>
    <texture>$INFO[Skin.String(cdartpath)][b][color=red]/[/color][/b]$INFO[MusicPlayer.Artist]/$INFO[MusicPlayer.Album]/fanart.jpg</texture>
          <aspectratio>keep</aspectratio>
          <visible>!Visualisation.Enabled + Player.HasAudio</visible>
    </control>

In guisettings.xml I have:
Code:
<setting type="string" name="Aeon Stark.cdartpath">/home/xbmc/music[color=red][b]/[/b][/color]</setting>


[1] I think I see your problem (highlighted in red above). By having a trailing slash on the end of your cdartpath path in guisettings.xml AND on the end of the $INFO[Skin.String(cdartpath)] in MusicVisualistation.xml it looks like you have a final path with 2 slashes in it, i.e. /home/xbmc/music//<artist>/<album>/fanart.jpg. Try removing the trailing slash from the path in guisettings.xml (or alternatively remove the slash from after the $INFO[Skin.String(cdartpath)] tags as you posted above).

[2] As for your small fonts, this could be becuase you haven't configured your fonts.xml file correctly, have a read of the bottom of reavens first post for details on how to add the relevant bits to Font.xml

[3] The progress bar wouldn't show up for me either. What I did was to find the following line in MusicVisualisation.xml.

Code:
<visible>Skin.HasSetting(noosdprogress)</visible>

It should be as part of a control with <description>Progressbar</description> at the top. Then change it to

Code:
<visible>true</visible>

Now, thats a bit of a hack, granted, but it worked for me as I always wanted it on.

Hope that helps.


- tsoek - 2009-09-29

Many thanks!

I've got it showing the background image now, I can't believe it was a silly mistake as double slashes once the location was put together.

Trying to think of an efficient way to handle various artist albums that are compiled by a single artist fanart. I have a lot of this situation since I mostly listen to trance music at the moment and with a lot of weekly podcasts that I listen to there are hundreds of artists. Is there a tag for albumartist rather than just album and just artist? This is a tag in ID3_v2 but it doesn't appear to be an available tag according to Tags_Available_for_Audio_Files. I'll have to hack around that by using Genre or something instead haha.


Tried the font.xml change from the first post but it's still showing small Sad ah well

edit: Used the id3 tag "comment" field to great success for what I was trying to accomplish!


- snowdrift - 2009-09-29

tsoek Wrote:Trying to think of an efficient way to handle various artist albums that are compiled by a single artist fanart. I have a lot of this situation since I mostly listen to trance music at the moment and with a lot of weekly podcasts that I listen to there are hundreds of artists. Is there a tag for albumartist rather than just album and just artist? This is a tag in ID3_v2 but it doesn't appear to be an available tag according to Tags_Available_for_Audio_Files. I'll have to hack around that by using Genre or something instead haha.

Incidentally, I have a lot of "various artist" type albums too. The way I handle it to have a single piece of fanart per album is to put the (artist) fanart.jpg under the actual album folder itself, rather than under the artist folder. I also have my music folder organised so that all albums by various artists come under a single folder. So, for example:

/Volumes/Music/The Killers/Hot Fuss/fanart.jpg
or
/Volumes/Music/Various Artists/The Annual 2009/fanart.jpg

Unless I'm misunderstanding what you want to do, wouldn't that work for you too? EDIT: Oh, its looks like your already doing this from the xml you posted....

Quote:Tried the font.xml change from the first post but it's still showing small ah well

Hmm....you might try taking a look through MusicVisualisation.xml, the <label> showing the current playtime you're looking for should have a <font> tag of "Font_bigtime" IIRC.


- tazman - 2009-10-13

Hi Reaven, i would like to know if there is a howto for your wonderfull mod because in the rar link you provide there is no such info ?? Actually i can't manage it to work. Sorry for my bad english. Taz