It is currently May 4th, 2024, 2:46 am

NowPlaying:How to display 2 instances of title

Get help with creating, editing & fixing problems with skins
User avatar
Yincognito
Rainmeter Sage
Posts: 7198
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: NowPlaying:How to display 2 instances of title

Post by Yincognito »

balala wrote: April 6th, 2020, 6:26 pm About the meters, their order in many cases is important, because this establishes which meter overlaps which other. Changing their order in some cases, can drastically change what are seeing on the screen.
Not talking about the fact that it is much easier to follow what the skin does, especially on longer / larger skins, if their order is proper.
Precisely. I usually go in the directions of relative positioning in the case of meters, i.e. from left to right, then from top to bottom each "row". I also hate when someone's code has the measures and the meters all mixed up chaotically (between each other or their category)...

For me, it's [Variables] first (since they can be used in the [Rainmeter] section as well), then [Rainmeter], then the measures (preferably starting with those executing first or "initializing" stuff), then the styles and lastly the meters, in the above order. This way, the order in the code resembles the order of execution and / or drawing, so things are much more clearer.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
balala
Rainmeter Sage
Posts: 16198
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: NowPlaying:How to display 2 instances of title

Post by balala »

Yincognito wrote: April 6th, 2020, 6:42 pm Precisely. I usually go in the directions of relative positioning in the case of meters, i.e. from left to right, then from top to bottom each "row".
If the meters are positioned relatively, usually there is not possible to reorder them.
Yincognito wrote: April 6th, 2020, 6:42 pm For me, it's [Variables] first (since they can be used in the [Rainmeter] section as well), then [Rainmeter], then the measures (preferably starting with those executing first or "initializing" stuff), then the styles and lastly the meters, in the above order. This way, the order in the code resembles the order of execution and / or drawing, so things are much more clearer.
Well, me personally prefer to put [Rainmeter] before [Variables]. But this probably is just my habit.
User avatar
jsmorley
Developer
Posts: 22631
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: NowPlaying:How to display 2 instances of title

Post by jsmorley »

Yeah, I have always considered [Rainmeter] to be analogous to a "header" section. Nothing says it needs to be first though.

My preference is:

[Rainmeter]
[MetaData]

[Variables]

[MeterBackground]

[Measure1]
[Measure2]

[MeterStyle]

[Meter1]
[Meter2]

I like to put any static background near the top, so it's easy to find and tweak as I alter the meters. Not all skins have that of course.
User avatar
Yincognito
Rainmeter Sage
Posts: 7198
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: NowPlaying:How to display 2 instances of title

Post by Yincognito »

balala wrote: April 6th, 2020, 6:59 pmIf the meters are positioned relatively, usually there is not possible to reorder them.
Yep, I meant that I like to order them this way even when it's not really needed (e.g. in case of absolute positioning). You never know when you need to edit the code and replace absolute positioning with relative one, so when this happens their order is already suited up to match the new situation. At least that's how I see it.
jsmorley wrote: April 6th, 2020, 7:01 pm Yeah, I have always considered [Rainmeter] to be analogous to a "header" section. Nothing says it needs to be first though.
Indeed. The "base"/"foundation" on which a Rainmeter skin code is built is made of variables and includes, so that's why I prefer them first. The [Rainmeter] section can depend on the variables from the [Variables] section (e.g. an update rate stored as variable, a skin width stored similarly, etc.), so this order seems more logical (and more similar to the actual processes happening in the background) to me.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
Yincognito
Rainmeter Sage
Posts: 7198
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: NowPlaying:How to display 2 instances of title

Post by Yincognito »

jsmorley wrote: April 6th, 2020, 7:01 pmI like to put any static background near the top, so it's easy to find and tweak as I alter the meters. Not all skins have that of course.
In my book, "easy to find and tweak" would mean being the first in the grouped set of meters, not lost between [Variables] and measures, but as you said many times, to each his own, LOL. After all, it's not something rigid and set in stone, it's just a matter of personal preference. :D
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
balala
Rainmeter Sage
Posts: 16198
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: NowPlaying:How to display 2 instances of title

Post by balala »

Yincognito wrote: April 6th, 2020, 7:11 pm The [Rainmeter] section can depend on the variables from the [Variables] section (e.g. an update rate stored as variable, a skin width stored similarly, etc.),
Yes, but the skin works even if the [Rainmeter] section is placed before [Variables]. And [Rainmeter] takes into account the variables even so.
User avatar
balala
Rainmeter Sage
Posts: 16198
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: NowPlaying:How to display 2 instances of title

Post by balala »

jsmorley wrote: April 6th, 2020, 7:01 pm Yeah, I have always considered [Rainmeter] to be analogous to a "header" section. Nothing says it needs to be first though.

My preference is:

[Rainmeter]
[MetaData]

[Variables]

[MeterBackground]

[Measure1]
[Measure2]

[MeterStyle]

[Meter1]
[Meter2]

I like to put any static background near the top, so it's easy to find and tweak as I alter the meters. Not all skins have that of course.
I prefer it so:

Code: Select all

[Rainmeter]
[MetaData]
[Variables]
[MeterStyle]
[Measure1]
[Measure2]
[MeterBackground]
[Meter1]
[Meter2]
But as you very well said "Nothing says it needs to be first though". It works anyway, so this probably is just a personal preference. Each with his own, probably...
User avatar
Yincognito
Rainmeter Sage
Posts: 7198
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: NowPlaying:How to display 2 instances of title

Post by Yincognito »

balala wrote: April 6th, 2020, 7:22 pm Yes, but the skin works even if the [Rainmeter] section is placed before [Variables]. And [Rainmeter] takes into account the variables even so.
Yes, I know. I was no implying that this order has any functional role, just that it resembles the actual internal order of doing things more closely (and which thing is based on which). When debugging some skin code, knowing what comes first and what comes after is important, and if the code is already ordered in a similar way, then it's much easier to follow the "route" on which things are happening, at least from a visual point of view, in the editor.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
Dwarlorf
Posts: 16
Joined: March 23rd, 2020, 8:31 am

Re: NowPlaying:How to display 2 instances of title

Post by Dwarlorf »

Yincognito wrote: April 5th, 2020, 10:54 pm And RainLexer with a nice dark theme as well? :D
I sure am now!

If added some extra features but am once again stuck at regex. (It's just not for me)

Code: Select all

[Variables]
SW=1
LW=90
RW=440
CW=14

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

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

---Measures---

[MeasurePlayer]
Measure=NowPlaying
PlayerName=CAD
PlayerType=FILE

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

[MeasureAlbum]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=ALBUM

[MeasureYear]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=YEAR
RegExpSubstitute=1
Substitute="^([0])$":""

[MeasureTrack]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=NUMBER
RegExpSubstitute=1
Substitute="^([1-9])$":"0\1","^([0])$":""

[MeasureTitle]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=TITLE
RegExpSubstitute=1
Substitute="(?siU)^(.*)[\(\s]+?(?:featuring|feat|ft)[\.\s]+?(.*)[\)\s]*?$":"\1"

[MeasureFeaturing]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=TITLE
RegExpSubstitute=1
Substitute="(?siU)^(.*)[\(\s]+?(?:featuring|feat|ft)[\.\s]+?(.*)[\)\s]*?$":"\2","(?:^$|^\\2$|^[MeasureTitle:EscapeRegExp]$)":" "
DynamicVariables=1

[MeasureLength]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=DURATION
Formula=(((MeasureDuration = 0) )
Substitute="00:00":""

[MeasureProgress]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=PROGRESS

[MeasureRepeat]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=REPEAT
Substitute="0":"","1":"On"

[MeasureShuffle]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=SHUFFLE
Substitute="0":"","1":"On"

[MeasureState]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=STATE
Substitute="0":"Stopped","1":"Playing","2":"Paused"

[MeasureVolume]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=VOLUME

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=STATUS
Substitute="0":"Foobar is off ","1":"Foobar is on"

---Styles---

[LBase]
FontColor=250,250,250,250
FontFace=Sansation
FontSize=16
FontWeight=100
StringAlign=Left
AntiAlias=1
ClipString=1

[RBase]
FontColor=250,250,250,250
FontFace=Sansation
FontSize=18
FontWeight=100
StringAlign=LEFT
AntiAlias=1
ClipString=1

[SLeftCol]
X=0
Y=0R
W=#LW#

[SRightCol]
X=0R
Y=0r
W=#RW#

---Meters---
[MeterSeparatorTop]
Meter=Shape
MeterStyle=SBase | SLeftCol
Y=([MeterProgressLabel:H]/2)R
W=(#LW#+#RW#)
H=(#SW#)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterArtistLabel]
Y=7R
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Artist"

[MeterArtistValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureArtist
Text=": %1"

[MeterAlbumLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Album"

[MeterAlbumValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureAlbum
Text=": %1"

[MeterYearLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Year"

[MeterYearValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureYear
Text=": %1"

[MeterTrackLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Track"

[MeterTrackValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureTrack
Text=": %1"

[MeterLengthLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Length"

[MeterLengthValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureLength
Text=": %1"

[MeterTitleLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Song"

[MeterTitleValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureTitle
Text=": %1"

[MeterFeaturingLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Featuring"

[MeterFeaturingValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureFeaturing
Text=": %1"

[MeterProgressLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Progress"

[MeterProgressColon]
Meter=STRING
MeterStyle=LBase | SRightCol
W=#CW#
Text=":"

[MeterProgressValue]
Meter=BAR
MeterStyle=LBase | SRightCol
Y=11r
W=250
H=15
SolidColor=150,150,150,255
BarColor=250,250,250,210
BarOrientation=Horizontal
MeasureName=MeasureProgress
DynamicVariables=1

[MeterSeparator]
Meter=Shape
MeterStyle=LBase | SLeftCol
Y=([MeterProgressLabel:H]/2)R
W=
H=(#SW#)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterRepeatLabel]
Y=7R
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Repeat"

[MeterRepeatValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureRepeat
Text=": %1"

[MeterShuffleLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Shuffle"

[MeterShuffleValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureShuffle
Text=": %1"

[MeterStateLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="State"

[MeterStateValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureState
Text=": %1"

[MeterVolumeLabel]
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Volume"

[MeterVolumeColon]
Meter=STRING
MeterStyle=LBase | SRightCol
W=#CW#
Text=":"

[MeterVolumeValue]
Meter=BAR
MeterStyle=LBase | SRightCol
Y=11r
W=250
H=15
SolidColor=150,150,150,255
BarColor=250,250,250,210
BarOrientation=Horizontal
MeasureName=MeasureVolume
DynamicVariables=1

[MeterSeparatorBottom]
Meter=Shape
MeterStyle=SBase | SLeftCol
Y=([MeterProgressLabel:H]/2)R
W=(#LW#+#RW#)
H=(#SW#)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterStatusLabel]
Y=7R
Meter=STRING
MeterStyle=LBase | SLeftCol
Text="Status"

[MeterStatusValue]
Meter=STRING
MeterStyle=RBase | SRightCol
MeasureName=MeasureStatus
Text=": %1"

[MeterSeparatorBottom2]
Meter=Shape
MeterStyle=SBase | SLeftCol
Y=([MeterProgressLabel:H]/2)R
W=(#LW#+#RW#)
H=(#SW#)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1
If you could help me with the final regex code that would be very appreciated.

When Status = 0 (Foobar is off) I would like the value of State to show nothing (instead of Stopped).
When Status = 1 (Foobar is on) but State is 0 (Stopped) all the other values (title, Album, Year, etc) are not shown but I would really like them to show their values. (I wonder why this is not the standard implementation in Rainmeter)

And a not essential bonus question (I'm not sure if I want to implement it): is there a way to have the Progress and Volume solid colors to be transparent when Status = 0 (Foobar is off)?
User avatar
Yincognito
Rainmeter Sage
Posts: 7198
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: NowPlaying:How to display 2 instances of title

Post by Yincognito »

Dwarlorf wrote: April 7th, 2020, 8:37 amIf added some extra features but am once again stuck at regex. (It's just not for me). If you could help me with the final regex code that would be very appreciated.

When Status = 1 (Foobar is on) but State is 0 (Stopped) all the other values (title, Album, Year, etc) are not shown but I would really like them to show their values. (I wonder why this is not the standard implementation in Rainmeter)
This has nothing to do with regex, actually - it's just about being a bit creative. Both status and state have numerical values too, so it's just a question of adding some IfConditions in the last measure (so that the values of the other measures are known by then), along with storing the last artist, song, etc. in corresponding variables while playing and use them instead of the actual measures in the meters, both when playing/paused (since it makes no difference anyway, they are the same values as the measures in this case) but also when the player is stopped (its state is 0), since then they would preserve the info from the last time when playing/paused and be different from the empty values of the corresponding measures. Of course, if the player is already stopped when the skin is initializing / loading, there won't be any "last values" to use, so in that case they will be empty - but that's only one drawback, and it will probably not matter anyway afterwards, after some song gets to be played even for 1 sec.
Dwarlorf wrote: April 7th, 2020, 8:37 amWhen Status = 0 (Foobar is off) I would like the value of State to show nothing (instead of Stopped).
Solved similarly to the issue above.
Dwarlorf wrote: April 7th, 2020, 8:37 amAnd a not essential bonus question (I'm not sure if I want to implement it): is there a way to have the Progress and Volume solid colors to be transparent when Status = 0 (Foobar is off)?
Sure. I let them just a bit opaque, in order to know they're there - feel free to change it if you deem it so. The difference between their "enabled status" colors and their "disabled status" ones is sufficient in my view to not need full transparency, but as I said, the alpha color is subject to change, if you like.

The full code (I made some other relatively significant changes in some areas, so you know what to do in this case: where you don't know, ask):

Code: Select all

[Variables]
SW=1
LW=90
RW=440
CW=14
LastArtist=""
LastAlbum=""
LastYear=""
LastTrack=""
LastLength=""
LastTitle=""
LastFeaturing=""
LastState=""

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

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

---Measures---

[MeasurePlayer]
Measure=NowPlaying
PlayerName=CAD
PlayerType=FILE

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

[MeasureAlbum]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=ALBUM

[MeasureYear]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=YEAR
RegExpSubstitute=1
Substitute="^0$":""

[MeasureTrack]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=NUMBER
RegExpSubstitute=1
Substitute="^0$":"","^(\d+)$":"000\1","^\d*(\d{2})$":"\1"

[MeasureLength]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=DURATION
RegExpSubstitute=1
Substitute="(?:^00:00$|^0$)":""

[MeasureTitle]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=TITLE
RegExpSubstitute=1
Substitute="(?siU)^(.*)[\(\s]+?(?:featuring|feat|ft)[\.\s]+?(.*)[\)\s]*?$":"\1","(?:^$|^\\1$)":" "

[MeasureFeaturing]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=TITLE
RegExpSubstitute=1
Substitute="(?siU)^(.*)[\(\s]+?(?:featuring|feat|ft)[\.\s]+?(.*)[\)\s]*?$":"\2","(?:^$|^\\2$|^[MeasureTitle:EscapeRegExp]$)":" "
DynamicVariables=1

[MeasureProgress]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=PROGRESS

[MeasureRepeat]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=REPEAT
RegExpSubstitute=1
Substitute="^0$":"","^1$":"On"

[MeasureShuffle]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=SHUFFLE
RegExpSubstitute=1
Substitute="^0$":"","^1$":"On"

[MeasureState]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=STATE
RegExpSubstitute=1
Substitute="^0$":"Stopped","^1$":"Playing","^2$":"Paused"

[MeasureVolume]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=VOLUME

[MeasureStatus]
Measure=NowPlaying
PlayerName=[MeasurePlayer]
PlayerType=STATUS
RegExpSubstitute=1
Substitute="^0$":"Foobar is off ","^1$":"Foobar is on"
IfCondition=(MeasureStatus=0)
IfTrueAction=[!SetVariable LastState ""][!SetOptionGroup BarGroup SolidColor "150,150,150,64"][!SetOptionGroup BarGroup BarColor "250,250,250,64"]
IfFalseAction=[!SetVariable LastState [MeasureState]][!SetOptionGroup BarGroup SolidColor "150,150,150,255"][!SetOptionGroup BarGroup BarColor "250,250,250,255"]
IfCondition2=(MeasureStatus=1) && (MeasureState=0)
IfFalseAction2=[!SetVariable LastArtist [MeasureArtist]][!SetVariable LastAlbum [MeasureAlbum]][!SetVariable LastYear [MeasureYear]][!SetVariable LastTrack [MeasureTrack]][!SetVariable LastLength [MeasureLength]][!SetVariable LastTitle [MeasureTitle]][!SetVariable LastFeaturing [MeasureFeaturing]]
IfConditionMode=1
DynamicVariables=1

---Styles---

[SBase]
FontColor=250,250,250,250
FontFace=Sansation
FontSize=16
FontWeight=100
StringAlign=Left
AntiAlias=1
ClipString=1

[SLeftCol]
X=0
Y=(Max([MeterArtistLabel:H],[MeterArtistValue:H])-[MeterArtistLabel:H])R
W=#LW#

[SRightCol]
X=0R
Y=([MeterArtistLabel:H]-[MeterArtistValue:H])r
W=#RW#
FontSize=18

---Meters---

[MeterSeparator0]
Meter=Shape
MeterStyle=SBase | SLeftCol
W=(#LW#+#RW#)
H=(#SW#)
Padding=0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25),0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterArtistLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Artist"
DynamicVariables=1

[MeterArtistValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastArtist#"
DynamicVariables=1

[MeterAlbumLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Album"
DynamicVariables=1

[MeterAlbumValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastAlbum#"
DynamicVariables=1

[MeterYearLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Year"
DynamicVariables=1

[MeterYearValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastYear#"
DynamicVariables=1

[MeterTrackLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Track"
DynamicVariables=1

[MeterTrackValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastTrack#"
DynamicVariables=1

[MeterLengthLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Length"
DynamicVariables=1

[MeterLengthValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastLength#"
DynamicVariables=1

[MeterTitleLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Song"
DynamicVariables=1

[MeterTitleValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastTitle#"
DynamicVariables=1

[MeterFeaturingLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Featuring"
DynamicVariables=1

[MeterFeaturingValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastFeaturing#"
DynamicVariables=1

[MeterProgressLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Progress"
DynamicVariables=1

[MeterProgressColon]
Meter=STRING
MeterStyle=SBase | SRightCol
W=#CW#
Text=":"
DynamicVariables=1

[MeterProgressValueTopGap]
Meter=Image
MeterStyle=SBase | SRightCol
Y=0r
W=250
H=([MeterArtistValue:H]*0.35)
DynamicVariables=1

[MeterProgressValue]
Group=BarGroup
Meter=BAR
MeterStyle=SBase | SRightCol
X=0r
Y=0R
W=250
H=([MeterArtistValue:H]*0.5)
SolidColor=150,150,150,255
BarColor=250,250,250,210
BarOrientation=Horizontal
MeasureName=MeasureProgress
DynamicVariables=1

[MeterProgressValueBottomGap]
Meter=Image
MeterStyle=SBase | SRightCol
X=0r
Y=0R
W=250
H=([MeterArtistValue:H]*0.15)
DynamicVariables=1

[MeterSeparator1]
Meter=Shape
MeterStyle=SBase | SLeftCol
W=(#LW#+#RW#)
H=(#SW#)
Padding=0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25),0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterRepeatLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Repeat"
DynamicVariables=1

[MeterRepeatValue]
Meter=STRING
MeterStyle=SBase | SRightCol
MeasureName=MeasureRepeat
Text=": %1"
DynamicVariables=1

[MeterShuffleLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Shuffle"
DynamicVariables=1

[MeterShuffleValue]
Meter=STRING
MeterStyle=SBase | SRightCol
MeasureName=MeasureShuffle
Text=": %1"
DynamicVariables=1

[MeterStateLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="State"
DynamicVariables=1

[MeterStateValue]
Meter=STRING
MeterStyle=SBase | SRightCol
Text=": #LastState#"
DynamicVariables=1

[MeterVolumeLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Volume"
DynamicVariables=1

[MeterVolumeColon]
Meter=STRING
MeterStyle=SBase | SRightCol
W=#CW#
Text=":"
DynamicVariables=1

[MeterVolumeValueTopGap]
Meter=Image
MeterStyle=SBase | SRightCol
Y=0r
W=250
H=([MeterArtistValue:H]*0.35)
DynamicVariables=1

[MeterVolumeValue]
Group=BarGroup
Meter=BAR
MeterStyle=SBase | SRightCol
X=0r
Y=0R
W=250
H=([MeterArtistValue:H]*0.5)
SolidColor=150,150,150,255
BarColor=250,250,250,210
BarOrientation=Horizontal
MeasureName=MeasureVolume
DynamicVariables=1

[MeterVolumeValueBottomGap]
Meter=Image
MeterStyle=SBase | SRightCol
X=0r
Y=0R
W=250
H=([MeterArtistValue:H]*0.15)
DynamicVariables=1

[MeterSeparator2]
Meter=Shape
MeterStyle=SBase | SLeftCol
W=(#LW#+#RW#)
H=(#SW#)
Padding=0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25),0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1

[MeterStatusLabel]
Meter=STRING
MeterStyle=SBase | SLeftCol
Text="Status"
DynamicVariables=1

[MeterStatusValue]
Meter=STRING
MeterStyle=SBase | SRightCol
MeasureName=MeasureStatus
Text=": %1"
DynamicVariables=1

[MeterSeparator3]
Meter=Shape
MeterStyle=SBase | SLeftCol
W=(#LW#+#RW#)
H=(#SW#)
Padding=0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25),0,(Max([MeterArtistLabel:H],[MeterArtistValue:H])*0.25)
Shape=Line 0,(#SW#/2),(#LW#+#RW#),(#SW#/2) | StrokeWidth #SW# | Stroke Color 255,255,255,255
DynamicVariables=1
Enjoy! 8-)
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth