It is currently April 27th, 2024, 4:47 am

Help recreating Foo_title skin

Get help with creating, editing & fixing problems with skins
tordenflesk
Posts: 6
Joined: February 28th, 2020, 10:49 pm

Help recreating Foo_title skin

Post by tordenflesk »

I'm (slowly) attempting to recreate my Foo_title skin in Rainmeter (due to foo_title not setting the exact color on text etc.)

Image

I want the config to be 3 pixels offset (x and Y) from the current monitor edge
I want the left text offset from the border by 3 pixles, with a 40-ish pixel gap to the right text which again would have a 3 pixel gap to the right border
The same 3 pixel gap above and below the text.

%Artist% - %Title% -%playback_time_remaining% / %_length%

I have gotten so far as to showing just the %Artist% - %Title%:

Image

I haven't been able to get things like #CURRENTCONFIGWIDTH# to work properly.

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
DynamicVariables=1
TrayIcon=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]

[MeterShape1]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,(#CURRENTCONFIGWIDTH#), (#CURRENTCONFIGHEIGHT#) | Fill Color 188,185,178,255 | StrokeWidth 0
[MeterShape2]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,(#CURRENTCONFIGWIDTH#-1), (#CURRENTCONFIGHEIGHT#-3) | Fill Color 188,185,178,255 | StrokeWidth 0

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
X=0
Y=0
Padding=3,2,2,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular

StringAlign=LEFT
AntiAlias=0
Text=%2 - %1

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
User avatar
Yincognito
Rainmeter Sage
Posts: 7175
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Help recreating Foo_title skin

Post by Yincognito »

tordenflesk wrote: February 28th, 2020, 11:41 pmI haven't been able to get things like #CURRENTCONFIGWIDTH# to work properly.
That's because you didn't add DynamicVariables=1 to those meters:

Code: Select all

[MeterShape1]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,(#CURRENTCONFIGWIDTH#), (#CURRENTCONFIGHEIGHT#) | Fill Color 188,185,178,255 | StrokeWidth 0
DynamicVariables=1
[MeterShape2]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,(#CURRENTCONFIGWIDTH#-1), (#CURRENTCONFIGHEIGHT#-3) | Fill Color 188,185,178,255 | StrokeWidth 0
DynamicVariables=1
This is also mentioned in the manual.
As for the other things, I think you will be able to do the right alignment of -%playback_time_remaining% / %_length% (since you had no problem using the left alignment in your skin), while the help for the NowPlaying measure seems to have already helped you. If you try and can't do something though, feel free to ask. ;-)
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
tordenflesk
Posts: 6
Joined: February 28th, 2020, 10:49 pm

Re: Help recreating Foo_title skin

Post by tordenflesk »

OK, i thought DynamicVariables could be set globally
Now, my issue is that the shapes are slow to update & that they only grow, they don't shrink to fit.

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
TrayIcon=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]

[MeterShape1]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,(#CURRENTCONFIGWIDTH#), (#CURRENTCONFIGHEIGHT#) | Fill Color 188,185,178,255 | StrokeWidth 0
DynamicVariables=1
[MeterShape2]
Meter=Shape
X=0
Y=0
Shape=Rectangle 1,1,(#CURRENTCONFIGWIDTH#-2), (#CURRENTCONFIGHEIGHT#-2) | Fill Color 67,67,67,255 | StrokeWidth 0
DynamicVariables=1

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
X=0
Y=0
Padding=4,0,3,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular

StringAlign=LEFT
AntiAlias=0
Text=%2 - %1

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5407
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: Help recreating Foo_title skin

Post by eclectic-tech »

tordenflesk wrote: February 29th, 2020, 1:25 am OK, i thought DynamicVariables could be set globally
Now, my issue is that the shapes are slow to update & that they only grow, they don't shrink to fit.
I would suggest using the actual string widths to set the shape dimensions.

In order to speed up the redraw action, reduce the skin update to 50 and add DefaultUpdateDivider=20, to bring it back to 1000 ms. Add Updatedivider=1 to the shape meters. This way the shape meters can be redrawn quickly while all other measures update at 1000 ms.

I added a #Gap# variable to use in both shape meters, and MeterString2, to set the distance between titles and times.

Code: Select all

[Rainmeter]
Update=50
DEfaultUpdateDivider=20
AccurateText=1
DynamicWindowSize=1
TrayIcon=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]
Gap=30

[MeterShape1]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,([MeterString:W]+[MeterString2:W]+#Gap#),[MeterString:H] | Fill Color 188,185,178,255 | StrokeWidth 0
DynamicVariables=1
UpdateDivider=1

[MeterShape2]
Meter=Shape
X=0
Y=0
Shape=Rectangle 1,1,([MeterString:W]+[MeterString2:W]+#Gap#),([MeterString:H]-2) | Fill Color 67,67,67,255 | StrokeWidth 0
DynamicVariables=1
UpdateDivider=1

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeasureDuration]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Duration

[MeasurePosition]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Position

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
X=0
Y=0
Padding=4,0,3,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular

StringAlign=LEFT
AntiAlias=0
Text=%2 - %1

[MeterString2]
MeasureName=MeasureDuration
MeasureName2=MeasurePosition
Meter=STRING
X=#Gap#R
Y=0
Padding=4,0,3,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
Text=%2/%1

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
User avatar
Yincognito
Rainmeter Sage
Posts: 7175
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Help recreating Foo_title skin

Post by Yincognito »

tordenflesk wrote: February 29th, 2020, 1:25 am OK, i thought DynamicVariables could be set globally
Now, my issue is that the shapes are slow to update & that they only grow, they don't shrink to fit.
Yeah, sorry for the delay, I was busy redesigning a bit my own skins in the meantime. Thankfully, eclectic-tech seems to have provided an excellent solution. I just tried it and it works like I think you want it too. :thumbup:
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
tordenflesk
Posts: 6
Joined: February 28th, 2020, 10:49 pm

Re: Help recreating Foo_title skin

Post by tordenflesk »

eclectic-tech wrote: March 1st, 2020, 2:10 am I would suggest using the actual string widths to set the shape dimensions.

In order to speed up the redraw action, reduce the skin update to 50 and add DefaultUpdateDivider=20, to bring it back to 1000 ms. Add Updatedivider=1 to the shape meters. This way the shape meters can be redrawn quickly while all other measures update at 1000 ms.

I added a #Gap# variable to use in both shape meters, and MeterString2, to set the distance between titles and times.
Thank you, that's very close. Just a few remaining issues, as you can see in this gif:
Image
the right border moves slightly every time the width of the right string changes. The way I solved this in foo_title I just added 72 pixels of padding to the left text, then aligned the right text to the right.

It seemingly "skips" seconds quite often.

I also took the code from here: https://forum.rainmeter.net/viewtopic.php?t=25618 to get the time remaining.I would also like to be able to track hour as well as for podcasts etc.

I was also hoping the last section would hide Rainmeter when Foobar's stopped/closed. As you can see in the gif I end up with " - 00:00 / 00:00"

Code: Select all

[Rainmeter]
Update=50
DEfaultUpdateDivider=20
AccurateText=1
DynamicWindowSize=1
TrayIcon=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]
Gap=30

[MeterShape1]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,([MeterString:W]+[MeterString2:W]+#Gap#),[MeterString:H] | Fill Color 188,185,178,255 | StrokeWidth 0
DynamicVariables=1
UpdateDivider=1

[MeterShape2]
Meter=Shape
X=0
Y=0
Shape=Rectangle 1,1,([MeterString:W]+[MeterString2:W]+#Gap#-2),([MeterString:H]-2) | Fill Color 67,67,67,255 | StrokeWidth 0
DynamicVariables=1
UpdateDivider=1

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeasureDuration]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Duration

[MeasurePosition]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Position

[MeasureRemaining]
Measure=Calc
Formula=( MeasureDuration - MeasurePosition )

[MeasureRemainingMinutes]
Measure=Calc
Formula=( Floor ( MeasureRemaining / 60 ))
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeasureRemainingSeconds]
Measure=Calc
Formula=( MeasureRemaining % 60 )
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
X=0
Y=0
Padding=4,0,3,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular

StringAlign=LEFT
AntiAlias=0
Text=%2 - %1

[MeterString2]
MeasureName=MeasureRemainingMinutes
MeasureName2=MeasureRemainingSeconds
MeasureName3=MeasureDuration
Meter=STRING
X=#Gap#R
Y=0
Padding=4,0,3,2
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
Text=-%1:%2 / %3

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
User avatar
Yincognito
Rainmeter Sage
Posts: 7175
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Help recreating Foo_title skin

Post by Yincognito »

tordenflesk wrote: March 1st, 2020, 7:53 pmThank you, that's very close. Just a few remaining issues, as you can see in this gif:
1. the right border moves slightly every time the width of the right string changes. The way I solved this in foo_title I just added 72 pixels of padding to the left text, then aligned the right text to the right
2. It seemingly "skips" seconds quite often.
3. I would also like to be able to track hour as well as for podcasts etc.
4. I was also hoping the last section would hide Rainmeter when Foobar's stopped/closed.
1. Solved in the code below.
2. Rainmeter is not suitable for extremely accurate time keeping - some delays will happen, depending on multiple factors (like CPU usage or plugin response time, for example), so there isn't much to be done about it. I've actually set the update to plain 1000 in the code below, as there isn't a good reason to bother with very short update rates. It's not like you want to track milliseconds, is it?
3. You might want to check how to use a Time measure here.
4. Showing and hiding certainly happens for me, but I use Winamp. Maybe the link in the List of Supported Players here for your player will help (if you didn't check that already, that is).

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]
Width1=72
Gap=72
Width2=72
Height1=12
PaddingLeft=4
PaddingTop=0
PaddingRight=3
PaddingBottom=2

[MeterBackground]
Meter=Shape
Shape=Rectangle 0,0,(#PaddingLeft#+#Width1#+#PaddingRight#+#Gap#+#PaddingLeft#+#Width2#+#PaddingRight#),(#PaddingTop#+#Height1#+#PaddingBottom#) | Fill Color 67,67,67,255 | Stroke Color 188,185,178,255 | StrokeWidth 1
DynamicVariables=1

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeasureDuration]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Duration

[MeasurePosition]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Position

[MeasureRemaining]
Measure=Calc
Formula=( MeasureDuration - MeasurePosition )

[MeasureRemainingMinutes]
Measure=Calc
Formula=( Floor ( MeasureRemaining / 60 ))
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeasureRemainingSeconds]
Measure=Calc
Formula=( MeasureRemaining % 60 )
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
Padding=#PaddingLeft#,#PaddingTop#,#PaddingRight#,#PaddingBottom#
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
X=0
Y=0
StringAlign=LEFT
AntiAlias=1
Text=%2 - %1
DynamicVariables=1

[MeterString2]
MeasureName=MeasureRemainingMinutes
MeasureName2=MeasureRemainingSeconds
MeasureName3=MeasureDuration
Meter=STRING
X=(#PaddingLeft#+#Width1#+#PaddingRight#+#Gap#+#PaddingLeft#+#Width2#+#PaddingRight#)
Y=0
StringAlign=RIGHT
Padding=#PaddingLeft#,#PaddingTop#,#PaddingRight#,#PaddingBottom#
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
AntiAlias=1
Text=-%1:%2 / %3
DynamicVariables=1

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
You can modify the dimensions or padding by editing the variables at the start of the code. I removed the 2nd rectangle shape as it was redundant considering you can draw the same thing using a single rectangle shape with a "stroke". I removed the TrayIcon=1 line as well, as 1 is the default Rainmeter value for that anyway.

P.S. Your skin looks a lot like the ones in my set. Small, but powerful. :D My Winamp is already showing what I play on the screen, but who knows, maybe I'll add this to a Rainmeter skin as well in the future... :???:
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
tordenflesk
Posts: 6
Joined: February 28th, 2020, 10:49 pm

Re: Help recreating Foo_title skin

Post by tordenflesk »

We're getting closer.

No, I don't want to track milliseconds, just -01:59:59(-hour:minute:seconds) remaining (preferably) without the skipping.
I don't see how a clock is going to help me with the hour part. I'm no good with regex and math in general, so I have little to no idea how to add "MeasureRemainingHours", or if that's even the correct way of doing it.

The reason for the second shape was to get a non-aliased single-pixel border. I couldn't find another way to achieve that.
Image
Top: Rainmeter
Bottom: Foo_title

TrayIcon=1 was to try to force the trayicon to appear. for some reason it's not showing up in my tray (bbZero shell). I'm using Rainmeter.exe !manage instead, so no big deal.

I added [MeasureState] to deal with the hiding when stopped

Code: Select all

Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=State
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
User avatar
jsmorley
Developer
Posts: 22631
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Help recreating Foo_title skin

Post by jsmorley »

I'm not sure I see any appreciable difference between any of these three...

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1

[Variables]

[MeterShape1]
Meter=Shape
Shape=Rectangle 0.5,0.5,401,51 | StrokeWidth 1 | Stroke Color 255,255,255,255 | Fill Color 0,0,0,255


[MeterShape2Back]
Meter=Shape
Y=10R
Shape=Rectangle 0,0,402,52 | StrokeWidth 0 | Fill Color 255,255,255,255

[MeterShape2]
Meter=Shape
Y=0r
Shape=Rectangle 1,1,400,50 | StrokeWidth 0 | Fill Color 0,0,0,255

[MeterShape3Back]
Meter=Image
Y=10R
W=402
H=52
SolidColor=255,255,255,255

[MeterShape3]
Meter=Image
X=1r
Y=1r
W=400
H=50
SolidColor=0,0,0,255

1.jpg



It's important to remember that a "stroke" is not a "border" in order to get the measurements right and have the result you want. Always, always remember that a "stroke" that has any "width" (even 1) is 1/2 "inside" and 1/2 "outside" the defined size of the shape.

That is why you got the undesirable results above, you are "chopping off" the 1/2 of the stroke that is "outside" the shape. Move the shape down and to the right by 1/2 of a pixel, so it fits in the skin, and it would be fine.

You could alternatively move the "meter" down and to the right by 1 pixel, but then you won't visibly start at 0,0, but at 0.5,0.5. Better to move the "shape", which can be done in fractional pixels.


All of those results start at 0,0 and are 402 X 52 pixels, with the "interior" at 400 X 50. All have a solid, 1-pixel outline that is 255,255,255 in color. So for me at least, I would opt for the one-meter approach. It also means that I'm not forced to have an entirely solid color for the fill.


2.jpg


One last hint is that due to how Windows draws 1/2 of a pixel, you might find that you get a "brighter" and perhaps more pleasing "white" if you use

Code: Select all

[MeterShape1]
Meter=Shape
Shape=Rectangle 0.75,0.75,401,51 | StrokeWidth 1.5 | Stroke Color 255,255,255,255 | Fill Color 0,0,0,150
5.jpg


So you have a stroke that is 1.5 pixels in width, rather than 1 pixel. The downside is that although you can barely see the difference, it's not exactly 1-pixel in width. The upside is that the "white" will be a bit more bright and clear. 1/2 of a pixel when drawn by Windows tends to "wash out" just a bit.


In general, "even numbered" strokes, 2/4/6/8 etc., where there are no fractional pixels, tend to be the most sharp and clear.


4.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Yincognito
Rainmeter Sage
Posts: 7175
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Help recreating Foo_title skin

Post by Yincognito »

tordenflesk wrote: March 1st, 2020, 11:47 pmNo, I don't want to track milliseconds, just -01:59:59(-hour:minute:seconds) remaining (preferably) without the skipping.
Sorry, my bad - I understood what you said the wrong way. Solved it the code below. I corrected the minutes formula as well, to handle periods of more than one hour.
tordenflesk wrote: March 1st, 2020, 11:47 pmThe reason for the second shape was to get a non-aliased single-pixel border. I couldn't find another way to achieve that.
Yes, I noticed that, but didn't know it bothered you. So I took jsmorley's post in mind and modified the code accordingly - you should have a non aliased single pixel border now, if my understanding of this is correct.
tordenflesk wrote: March 1st, 2020, 11:47 pmTrayIcon=1 was to try to force the trayicon to appear. for some reason it's not showing up in my tray (bbZero shell). I'm using Rainmeter.exe !manage instead, so no big deal.
Ok then, I let that as the last time I posted the code.
tordenflesk wrote: March 1st, 2020, 11:47 pmI added [MeasureState] to deal with the hiding when stopped

Code: Select all

Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=State
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
I'm assuming this works in your case (CAD) though? Cause it's not very clear from what you've said. Anyway, it's the right way to do it, so it is present in the revised code, the same as last time.
tordenflesk wrote: March 1st, 2020, 11:47 pmWe're getting closer.
I think now we just got there, after these recent posts (thanks, jsmorley, for reminding me what I missed).

The skin:

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1

[Metadata]
Name=
Author=
Information=
Version=
License=Creative Commons Attribution - Non - Commercial - Share Alike 3.0

[Variables]
Width1=72
Gap=72
Width2=72
Height1=12
PaddingLeft=4
PaddingTop=0
PaddingRight=3
PaddingBottom=2

[MeterBackground]
Meter=Shape
Shape=Rectangle 0.5,0.5,(#PaddingLeft#+#Width1#+#PaddingRight#+#Gap#+#PaddingLeft#+#Width2#+#PaddingRight#-1),(#PaddingTop#+#Height1#+#PaddingBottom#-1) | Fill Color 67,67,67,255 | Stroke Color 188,185,178,255 | StrokeWidth 1
DynamicVariables=1

[MeasureTitle]
Measure=NowPlaying
PlayerName=CAD
PlayerType=TITLE

[MeasureArtist]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=ARTIST

[MeasureDuration]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Duration

[MeasurePosition]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=Position

[MeasureRemaining]
Measure=Calc
Formula=( MeasureDuration - MeasurePosition )

[MeasureRemainingHours]
Measure=Calc
Formula=( Floor ( MeasureRemaining / 3600 ))
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeasureRemainingMinutes]
Measure=Calc
Formula=( Floor ( (MeasureRemaining - MeasureRemainingHours * 3600) / 60 ))
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeasureRemainingSeconds]
Measure=Calc
Formula=( MeasureRemaining % 60 )
RegExpSubstitute=1
Substitute="^(.)$":"0\1"

[MeterString]
MeasureName=MeasureTitle
MeasureName2=MeasureArtist
Meter=STRING
Padding=#PaddingLeft#,#PaddingTop#,#PaddingRight#,#PaddingBottom#
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
X=0
Y=0
StringAlign=LEFT
AntiAlias=1
Text=%2 - %1
DynamicVariables=1

[MeterString2]
MeasureName=MeasureRemainingHours
MeasureName2=MeasureRemainingMinutes
MeasureName3=MeasureRemainingSeconds
MeasureName4=MeasureDuration
Meter=STRING
X=(#PaddingLeft#+#Width1#+#PaddingRight#+#Gap#+#PaddingLeft#+#Width2#+#PaddingRight#)
Y=0
StringAlign=RIGHT
Padding=#PaddingLeft#,#PaddingTop#,#PaddingRight#,#PaddingBottom#
FontColor=245,245,245
SolidColor=0,0,0,0
FontSize=6
FontFace=Semplice Regular
AntiAlias=1
Text=-%1:%2:%3 / %4
DynamicVariables=1

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasureTitle]
PlayerType=STATUS
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!Hide "#CURRENTCONFIG#"]
IfFalseAction=[!Show "#CURRENTCONFIG#"]
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth