It is currently December 9th, 2021, 4:29 am

I have: title, artist, album and need scrolling... please

Help with creating, editing & fixing problems with skins
User avatar
balala
Rainmeter Sage
Posts: 13533
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: I have: title, artist, album and need scrolling... please

Post by balala »

answerjen wrote: February 5th, 2020, 4:43 am Is it possible to make the loop scroll effect look the same as in the video? :)
As a first, quick, but far from being perfect or even good solution, you can multiply the formulas of the [MeasureMarquee1Offset] - [MeasureMarquee4Offset] measures with a constant numeric value. For instance:

Code: Select all

[MeasureMarquee1Offset]
...
Formula=( 14 * max ( 0, ( [Title:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee2Offset]
...
Formula=( 14 * max ( 0, ( [Artist:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee3Offset]
...
Formula=( 14 * max ( 0, ( [Album:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee4Offset]
...
Formula=( 14 * max ( 0, ( [Year:W] - [MeterTextContainer:W] )))
...
Again I have to furtherly work onto this, this multiplying solution is just a first and rough approach.
User avatar
creativegamer_03
Posts: 8
Joined: November 15th, 2021, 5:51 am

Re: I have: title, artist, album and need scrolling... please

Post by creativegamer_03 »

balala wrote: February 5th, 2020, 8:43 pm As a first, quick, but far from being perfect or even good solution, you can multiply the formulas of the [MeasureMarquee1Offset] - [MeasureMarquee4Offset] measures with a constant numeric value. For instance:

Code: Select all

[MeasureMarquee1Offset]
...
Formula=( 14 * max ( 0, ( [Title:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee2Offset]
...
Formula=( 14 * max ( 0, ( [Artist:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee3Offset]
...
Formula=( 14 * max ( 0, ( [Album:W] - [MeterTextContainer:W] )))
...

[MeasureMarquee4Offset]
...
Formula=( 14 * max ( 0, ( [Year:W] - [MeterTextContainer:W] )))
...
Again I have to furtherly work onto this, this multiplying solution is just a first and rough approach.
any update? looking forward to an iphone music player marquee text scroll.
rainmeter is just so cool
User avatar
death.crafter
Rainmeter Sage
Posts: 1208
Joined: April 24th, 2021, 8:13 pm

Re: I have: title, artist, album and need scrolling... please

Post by death.crafter »

creativegamer_03 wrote: November 15th, 2021, 7:02 am any update? looking forward to an iphone music player marquee text scroll.

Code: Select all

[MeterLoop]
Measure=Loop
StartValue=0
EndValue=([MeterText:W] + 10)
DynamicVariables=1

[MeterContainer]
Meter=Image
...
[MeterText1]
X=[MeterLoop]
...
DynamicVariables=1
Container=MeterContainer

[MeterText2]
X=10R
...
Container=MeterContainer
This can be improvised further, taking in the need and implementation.
from the Realm of Death
User avatar
creativegamer_03
Posts: 8
Joined: November 15th, 2021, 5:51 am

Re: I have: title, artist, album and need scrolling... please

Post by creativegamer_03 »

I think I somewhatdid it. My idea was to:
  • Make it scroll until it "disappears".
  • Move it in ONE step to the other side whilst being invisible by setting the text's X position equal to MeterTextContainer's width.
  • Make it scroll again, but until it reaches back to X=0.
  • Pause for #marqueeBeginWait# seconds.
  • Loop again.
Modified the following parts:

Code: Select all

...
[MeasureMarquee1_Offset]
Measure=Calc
Formula=( max( 0, ( [MeterTextContainer:W] - [Title:X] )))
DynamicVariables=1
...
; Marquee 1
ActionList1=Repeat Move1,#animationSpeed#,[MeasureMarquee1Offset:] | Repeat HMove1,#animationSpeed#,1 | Repeat Move1,#animationSpeed#,[MeasureMarquee1_Offset:] | Reset1 | Wait #marqueeBeginWait# | DoOver1
Reset1=[!SetVariable marquee1 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
Move1=[!SetVariable marquee1 "(#marquee1# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
HMove1=[!SetVariable marquee1 "[MeterTextContainer:W]"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
DoOver1=[!CommandMeasure MeasureActionTimer "Execute 1"]
...
And...
[Youtube]https://youtu.be/y_sdk1cSKmg[/Youtube]

Some issues however are:
  • it pauses for some reason (prob. the code broke)
  • it sometimes goes offset at start
  • causes other skins to freeze
anyways, i thought i would share something that might help find a solution. :D
rainmeter is just so cool
User avatar
balala
Rainmeter Sage
Posts: 13533
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: I have: title, artist, album and need scrolling... please

Post by balala »

death.crafter wrote: November 15th, 2021, 11:12 am

Code: Select all

[MeterLoop]
Measure=Loop
StartValue=0
EndValue=([MeterText:W] + 10)
DynamicVariables=1

[MeterContainer]
Meter=Image
...
[MeterText1]
X=[MeterLoop]
...
DynamicVariables=1
Container=MeterContainer

[MeterText2]
X=10R
...
Container=MeterContainer
This can be improvised further, taking in the need and implementation.
Even if this is an off-topic, there is a small mistake in this code, I believe. More precisely in the EndValue=([MeterText:W] + 10) option of the [MeterLoop] measure. First it is quite confusing to have a measure named as meter ([MeterLoop]). But this is just a small detail. The biggest problem is that a [MeterText] meter doesn't exist. There is a [MeterText1] as well as [MeterText2], but no [MeterText].
User avatar
balala
Rainmeter Sage
Posts: 13533
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: I have: title, artist, album and need scrolling... please

Post by balala »

creativegamer_03 wrote: November 15th, 2021, 3:35 pm anyways, i thought i would share something that might help find a solution. :D
First, post please a complete code of your skin, because this topic is quite old, has more then one and half a year. I don't have the code of the skin and even if I'd have it, you probably have modified it, so please post it.
User avatar
death.crafter
Rainmeter Sage
Posts: 1208
Joined: April 24th, 2021, 8:13 pm

Re: I have: title, artist, album and need scrolling... please

Post by death.crafter »

balala wrote: November 15th, 2021, 4:04 pm Even if this is an off-topic, there is a small mistake in this code, I believe. More precisely in the EndValue=([MeterText:W] + 10) option of the [MeterLoop] measure. First it is quite confusing to have a measure named as meter ([MeterLoop]). But this is just a small detail. The biggest problem is that a [MeterText] meter doesn't exist. There is a [MeterText1] as well as [MeterText2], but no [MeterText].
Ahh yes, I added the 1 later to MeterText. Thanks for pointing out.
from the Realm of Death
User avatar
balala
Rainmeter Sage
Posts: 13533
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: I have: title, artist, album and need scrolling... please

Post by balala »

death.crafter wrote: November 15th, 2021, 4:42 pm Ahh yes, I added the 1 later to MeterText. Thanks for pointing out.
Recommend to fix the code in your post above, to let creativegamer_03 to use it, if needed.
User avatar
death.crafter
Rainmeter Sage
Posts: 1208
Joined: April 24th, 2021, 8:13 pm

Re: I have: title, artist, album and need scrolling... please

Post by death.crafter »

balala wrote: November 15th, 2021, 5:32 pm Recommend to fix the code in your post above, to let creativegamer_03 to use it, if needed.
I will post a complete example if he needs. But I think he has found a way. But yes, I will update it.
from the Realm of Death
User avatar
creativegamer_03
Posts: 8
Joined: November 15th, 2021, 5:51 am

Re: I have: title, artist, album and need scrolling... please

Post by creativegamer_03 »

balala wrote: November 15th, 2021, 4:26 pm First, post please a complete code of your skin, because this topic is quite old, has more then one and half a year. I don't have the code of the skin and even if I'd have it, you probably have modified it, so please post it.
ok. here's the code:

Code: Select all

[Rainmeter]
Update=100
AccurateText=1
BackgroundMode=2
SolidColor=0,0,0,1
OnRefreshAction=[!SetVariable Marquee1 0][!SetVariable Marquee2 0][!SetVariable Marquee3 0][!SetVariable Marquee4 0][!CommandMeasure MeasureActionTimer "Stop 1"][!CommandMeasure MeasureActionTimer "Stop 2"][!CommandMeasure MeasureActionTimer "Stop 3"][!CommandMeasure MeasureActionTimer "Stop 4"][!CommandMeasure MeasureActionTimer "Execute 1"][!CommandMeasure MeasureActionTimer "Execute 2"][!CommandMeasure MeasureActionTimer "Execute 3"][!CommandMeasure MeasureActionTimer "Execute 4"][!KeepOnScreen #KeepOnScreen#]

[Metadata]
Name=CoveR Left
Author=NikolaRabra (rabra.deviantart.com)
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Version=1 (20140909)

[Variables]
@includeVars=#@#Variables.inc
ProgressAlpha=1
Step=-1
NoTitleNameText=N/A
NoArtistNameText=N/A
NoAlbumNameText=N/A

; Added to test (Should be in your included variables.inc file)
TextWidth=300
Color=255,255,255,155
Alpha=300
HideInfo=0
KeepOnScreen=0

; Marquee settings
animationSpeed=1
marqueeBeginWait=3000
marqueeEndWait=3000
; Dynamic variables - do not change
marquee1=0
marquee2=0
marquee3=0
marquee4=0

; Styles ------------------------------------------------------------------------------------------

[StringStyleLarge]
FontFace=Segoe UI Light
FontColor=#Color#,(255*(#Alpha#))
;FontSize=19
FontSize=19
StringStyle=Normal
StringEffect=None
FontEffectColor=0,0,0,(255*(#Alpha#))
AntiAlias=1
Container=MeterTextContainer
DynamicVariables=1


; Measures ----------------------------------------------------------------------------------------

[MeasureArtist]
Measure=Plugin
Plugin=NowPlaying
PlayerName=WMP
PlayerType=ARTIST
Substitute="":"#NoArtistNameText#"
UpdateDivider=100
OnChangeAction=[!Refresh "#CurrentConfig#"]

[MeasureAlbum]
Measure=Plugin
Plugin=NowPlaying
PlayerName=[MeasureArtist]
PlayerType=ALBUM
Substitute="":"#NoAlbumNameText#"
UpdateDivider=100

[MeasureTitle]
Measure=Plugin
Plugin=NowPlaying
PlayerName=[MeasureArtist]
PlayerType=TITLE
Substitute="":"#NoTitleNameText#"
UpdateDivider=100

[MeasureYear]
Measure=Plugin
Plugin=NowPlaying
PlayerName=[MeasureArtist]
PlayerType=YEAR


; Marquee Measures

[MeasureMarquee1Offset]
Measure=Calc
Formula=( 2 * max ( 0, ( [Title:W] - [MeterTextContainer:W] )))
DynamicVariables=1

[MeasureMarquee1_Offset]
Measure=Calc
Formula=( max( 0, ( [MeterTextContainer:W] - [Title:X] )))
DynamicVariables=1

[MeasureMarquee2Offset]
Measure=Calc
Formula=( 5 * max ( 0, ( [Artist:W] - [MeterTextContainer:W] )))
DynamicVariables=1

[MeasureMarquee3Offset]
Measure=Calc
Formula=( 14 * max ( 0, ( [Album:W] - [MeterTextContainer:W] )))
DynamicVariables=1

[MeasureMarquee4Offset]
Measure=Calc
Formula=( 14 * max ( 0, ( [Year:W] - [MeterTextContainer:W] )))
DynamicVariables=1

[MeasureActionTimer]
Measure=Plugin
Plugin=ActionTimer

; Marquee 1
ActionList1=Repeat Move1,#animationSpeed#,[MeasureMarquee1Offset:] | Repeat HMove1,1,1 | Repeat Move1,#animationSpeed#,[MeasureMarquee1_Offset:] | Reset1 | Wait #marqueeBeginWait# | DoOver1
Reset1=[!SetVariable marquee1 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
Move1=[!SetVariable marquee1 "(#marquee1# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
HMove1=[!SetVariable marquee1 "[MeterTextContainer:W]"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Title][!Redraw]
DoOver1=[!CommandMeasure MeasureActionTimer "Execute 1"]


; Marquee 2
ActionList2=Repeat Move2,#animationSpeed#,[MeasureMarquee2Offset:] | Wait #marqueeEndWait# | Reset2 | Wait #marqueeBeginWait# | DoOver2
Reset2=[!SetVariable marquee2 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter Artist][!Redraw]
Move2=[!SetVariable marquee2 "(#marquee2# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Artist][!Redraw]
DoOver2=[!CommandMeasure MeasureActionTimer "Execute 2"]

; Marquee 3
ActionList3=Repeat Move3,#animationSpeed#,[MeasureMarquee3Offset:] | Wait #marqueeEndWait# | Reset3 | Wait #marqueeBeginWait# | DoOver3
Reset3=[!SetVariable marquee3 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter Album][!Redraw]
Move3=[!SetVariable marquee3 "(#marquee3# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Album][!Redraw]
DoOver3=[!CommandMeasure MeasureActionTimer "Execute 3"]


; Marquee 4
ActionList4=Repeat Move4,#animationSpeed#,[MeasureMarquee4Offset:] | Wait #marqueeEndWait# | Reset4 | Wait #marqueeBeginWait# | DoOver4
Reset4=[!SetVariable marquee4 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter Year][!Redraw]
Move3=[!SetVariable marquee3 "(#marquee3# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter Year][!Redraw]
DoOver4=[!CommandMeasure MeasureActionTimer "Execute 4"]
DynamicVariables=1

; Container to control scrolling based on TextWidth
[MeterTextContainer]
Meter=Image
SolidColor=255,255,255,155
X=1
Y=1
W=#TextWidth#
H=155

; Info Text ---------------------------------------------------------------------------------------

[Title]
Meter=STRING
MeasureName=MeasureTitle
MeterStyle=StringStyleLarge
StringAlign=LeftBottom
X=#marquee1#
Y=38
Text=%1
Group=Info
Hidden=#HideInfo#
StringStyle=bold

[Artist]
Meter=STRING
MeasureName=MeasureArtist
MeterStyle=StringStyleLarge
StringAlign=LeftTop
Text=%1
X=#marquee2#
Y=36
Group=Info
Hidden=#HideInfo#
StringStyle=bold

[Album]
Meter=STRING
MeasureName=MeasureAlbum
MeterStyle=StringStyleLarge
StringAlign=LeftTop
Text=%1
X=#marquee3#
Y=72
Group=Info
Hidden=#HideInfo#
StringStyle=bold

[Year]
Meter=STRING
MeasureName=MeasureYear
MeterStyle=StringStyleLarge
StringAlign=LeftTop
Text=%1
X=#marquee4#
Y=106
Group=Info
Hidden=#HideInfo#
StringStyle=bold
rainmeter is just so cool