It is currently March 29th, 2024, 10:17 am

Help with freezing marquees.

Get help with creating, editing & fixing problems with skins
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Help with freezing marquees.

Post by chamlex »

I've searched around and found raiguard's post on scrolling text marquee and modified to use to to show information for spotify now playing. The issue I have ran into and using raiguard's scrolling text is that after a few repeats it fails to continue scrolling, and all scrolling actions just stop. I can refresh the skin and it starts again but then freezes. The code for the skin is below. The marquee variables update and then stop updating. I look in the error log and it shows that 'ActionList 1' is currently running then followed by 'ActionList 2' is currently running. Thanks in advance for your help

Code: Select all

[Rainmeter]
Update=100
OnRefreshAction=[!CommandMeasure MeasureActionTimer "Execute 1"][!CommandMeasure MeasureActionTimer "Execute 2"]
AccurateText=1

BackgroundMode=2
SolidColor=0,0,0,1
AccurateText=1

[Variables]
@include=#@#Variables.inc
; Marquee settings
animationSpeed=32
marqueeBeginWait=1500
marqueeEndWait=1500
Boxwidth=233
; Dynamic variables - do not change
marquee1=0
marquee2=0
;-------------------------------------------------------------

[MeasureArtist]
Measure=Plugin
Plugin=NowPlaying.dll
PlayerName=#Player#
PlayerType=ARTIST
Substitue="":""

[MeasureTitle]
Measure=Plugin
Plugin=NowPlaying.dll
PlayerName=#Player#
PlayerType=TITLE
Substitue="":""

[MeasureAlbum]
Measure=Plugin
Plugin=NowPlaying.dll
PlayerName=#Player#
PlayerType=ALBUM
Substitue="":""

[MeasureStateButton]
Measure=Plugin
Plugin=NowPlaying.dll
PlayerName=#Player#
PlayerType=STATE
Substitute="0":"#@#Play.png","1":"#@#Pause.png","2":"#@#Play.png"

;-------------------------------------------------------------
;-------------------------------------------------------------

[Text1L]
Measure=Calc
Formula=[MeterText1:W]
DynamicVariables=1

[Text2L]
Measure=Calc
Formula=[MeterText2:W]
DynamicVariables=1


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

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


[MeasureActionTimer]
Measure=Plugin
Plugin=ActionTimer
; Marquee 1
ActionList1=Repeat Move1,#animationSpeed#,[MeasureMarquee1Offset:] | Wait #marqueeEndWait# | Reset1 | Wait #marqueeBeginWait# | DoOver1
Reset1=[!SetVariable marquee1 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!Redraw]
Move1=[!SetVariable marquee1 "(#marquee1# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!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 MeterText2][!Redraw]
Move2=[!SetVariable marquee2 "(#marquee2# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText2][!Redraw]
DoOver2=[!CommandMeasure MeasureActionTimer "Execute 2"]
DynamicVariables=1

[MeterTextContainer]
Meter=Image
SolidColor=255,255,255,255
X=786
Y=430
W=#Boxwidth#
H=80

[MeterText1]
Meter=String
FontColor=#Color1#
FontFace=RMPixel
FontSize=30
MeasureName=MeasureTitle
Container=MeterTextContainer
;X=#marquee1#
X=([MeasureMarquee1Offset] = 0 ? (#Boxwidth# - [Text1L])/2:#marquee1#)
Y=0
Text="%1"
AntiAlias=0
DynamicVariables=1

[MeterText2]
Meter=String
FontColor=#Color1#
FontFace=RMPixel
FontSize=15
Container=MeterTextContainer
MeasureName=MeasureArtist
;X=#marquee2#
X=([MeasureMarquee2Offset] = 0 ? (#Boxwidth# - [Text2L])/2:#marquee2#)
Y=R
Text="%1"
AntiAlias=0
DynamicVariables=1

;-------------------------------------------------------------
;-------------------------------------------------------------

[MeterPrevious]
Meter=Image
ImageName=#@#Previous.png
X=(851)
Y=469
W=26
AntiAlias=0
ImageTint=#Color2#
SolidColor=0,0,0,1
LeftMouseUpAction=[!PluginBang "MeasureStateButton Previous"]

[MeterPlayPause]
Meter=Image
ImageName=[MeasureStateButton]
X=(40)r
Y=(0)r
W=(26)
AntiAlias=0
SolidColor=0,0,0,1
ImageTint=#Color2#
DynamicVariables=1
LeftMouseUpAction=[!CommandMeasure "MeasureStateButton" "PlayPause"]

[MeterNext]
Meter=Image
ImageName=#@#Next.png
X=(40)r
Y=(0)r
W=(26)
AntiAlias=0
ImageTint=#Color2#
SolidColor=0,0,0,1
LeftMouseUpAction=[!PluginBang "MeasureStateButton Next"]
Variables.inc

Code: Select all

[Variables]

Language=English
TempSymbol=F
MeasureName2=MeasureTempFahrenheit
Format=H
Hidden=0
Hidden2=1
Player=Spotify

Color1=0,0,0
Color2=153,204,0

Updated to include variables.inc to allow skin to run.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Help with freezing marquees.

Post by balala »

chamlex wrote: February 20th, 2020, 6:32 pm I've searched around and found raiguard's post on scrolling text marquee and modified to use to to show information for spotify now playing. The issue I have ran into and using raiguard's scrolling text is that after a few repeats it fails to continue scrolling, and all scrolling actions just stop. I can refresh the skin and it starts again but then freezes. The code for the skin is below. The marquee variables update and then stop updating. I look in the error log and it shows that 'ActionList 1' is currently running then followed by 'ActionList 2' is currently running.
Let's make smaller steps:
  • There is an included file (@Resources\Variables.inc), which we don't have: I suppose we need it as well, so please post it.
  • The NowPlaying measures should have a parent - child structure. For this and the next point, please see this description.
  • A while ago NowPlaying became a measure and on newer code it should be used so. Accordingly replace the Measure=Plugin and Plugin=NowPlaying.dll options pairs with Measure=NowPlaying.
  • There is no need to include simple numeric options into parenthesis. For instance is useless to use those parenthesis into the X option of the[MeterPrevious] meter (X=(851)), or the X, Y and W options of the [MeterPlayPause] meter (X=(40)r, Y=(0)r and W=(26)).
However the last two points for sure are not the cause of the problem.
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Re: Help with freezing marquees.

Post by chamlex »

Thanks, I based this on an the player skin from mond https://www.deviantart.com/hiphopium/art/Mond-762455575. I thought I updated my previous post to include the variables.inc file but it is included below. The player skin worked fine before I added the scrolling fields to it and still works but the scrolling stops. When I check the variables for marquees when the text is too long for the field they are updating and scrolling but then the scrolling stops.

Code: Select all


[Variables]

Language=English
TempSymbol=F
MeasureName2=MeasureTempFahrenheit
Format=H
Hidden=0
Hidden2=1
Player=Spotify

Color1=0,0,0
Color2=153,204,0
The scrolling was based and modified off of the code below which is from https://forum.rainmeter.net/viewtopic.php?t=31790 in which i removed the MiddleMouseUpAction since I just want it to automatically refresh and scroll as needed while music plays.

Code: Select all

[Rainmeter]
MiddleMouseUpAction=[!Refresh]
OnRefreshAction=[!CommandMeasure MeasureActionTimer "Execute 1"][!CommandMeasure MeasureActionTimer "Execute 2"][!CommandMeasure MeasureActionTimer "Execute 3"]
AccurateText=1

[Variables]
; Text settings
text1=This is a long text testy
text2=This is an even loooooooooonger text testy
text3=Too short testy!
; Marquee settings
animationSpeed=32
marqueeBeginWait=1500
marqueeEndWait=1500
; Dynamic variables - do not change
marquee1=0
marquee2=0
marquee3=0

[StyleText]
FontFace=Calibri
FontColor=230,230,230
FontSize=15
FontWeight=600
X=0
Y=1R
Antialias=1
Container=MeterTextContainer
DynamicVariables=1

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

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

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

[MeasureActionTimer]
Measure=Plugin
Plugin=ActionTimer
; Marquee 1
ActionList1=Repeat Move1,#animationSpeed#,[MeasureMarquee1Offset:] | Wait #marqueeEndWait# | Reset1 | Wait #marqueeBeginWait# | DoOver1
Reset1=[!SetVariable marquee1 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!Redraw]
Move1=[!SetVariable marquee1 "(#marquee1# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!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 MeterText2][!Redraw]
Move2=[!SetVariable marquee2 "(#marquee2# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText2][!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 MeterText3][!Redraw]
Move3=[!SetVariable marquee3 "(#marquee3# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText3][!Redraw]
DoOver3=[!CommandMeasure MeasureActionTimer "Execute 3"]
DynamicVariables=1

[MeterBackground]
Meter=Shape
Shape=Rectangle 1,1,180,106,6 | StrokeWidth 2 | Stroke Color 50,50,50 | Fill Color 15,15,15

[MeterTextContainer]
Meter=Image
SolidColor=255,255,255,255
X=16
Y=16
W=150
H=76

[MeterText1]
Meter=String
MeterStyle=StyleText
X=#marquee1#
Y=1
Text=#text1#

[MeterText2]
Meter=String
MeterStyle=StyleText
X=#marquee2#
Text=#text2#

[MeterText3]
Meter=String
MeterStyle=StyleText
X=#marquee3#
Text=#text3#
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Help with freezing marquees.

Post by balala »

chamlex wrote: February 20th, 2020, 7:22 pm I thought I updated the post to include the variables.inc file but it is included below.
Ok, got it, however right after I posted my previous reply, I just realized the problem occurs only when the player switches from one piece to the next one. While the same piece is played, the scrolling goes on, no matter how long that piece is. But when the player moves to the next piece, the scrolling stopes.
Please confirm if I am right.
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Re: Help with freezing marquees.

Post by chamlex »

For me the scrolling freezes in the middle of the song or after about 10-15 seconds. If i refresh the skin (manually) it'll continue and will update to the new song and if needed start scrolling again but the scrolling then freezes again.
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Re: Help with freezing marquees.

Post by chamlex »

So I went back and tried the scrolling only text which is posted below. Is this supposed to scroll indefinitely? It scrolls then shows errors in the error log that an Action List is still running and when those appear the scrolling stop.

Code: Select all

[Rainmeter]
MiddleMouseUpAction=[!Refresh]
OnRefreshAction=[!CommandMeasure MeasureActionTimer "Execute 1"][!CommandMeasure MeasureActionTimer "Execute 2"][!CommandMeasure MeasureActionTimer "Execute 3"]
AccurateText=1

[Variables]
; Text settings
text1=This is a long text testy
text2=This is an even loooooooooonger text testy
text3=Too short testy!
; Marquee settings
animationSpeed=32
marqueeBeginWait=1500
marqueeEndWait=1500
; Dynamic variables - do not change
marquee1=0
marquee2=0
marquee3=0

[StyleText]
FontFace=Calibri
FontColor=230,230,230
FontSize=15
FontWeight=600
X=0
Y=1R
Antialias=1
Container=MeterTextContainer
DynamicVariables=1

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

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

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

[MeasureActionTimer]
Measure=Plugin
Plugin=ActionTimer
; Marquee 1
ActionList1=Repeat Move1,#animationSpeed#,[MeasureMarquee1Offset:] | Wait #marqueeEndWait# | Reset1 | Wait #marqueeBeginWait# | DoOver1
Reset1=[!SetVariable marquee1 0][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!Redraw]
Move1=[!SetVariable marquee1 "(#marquee1# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText1][!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 MeterText2][!Redraw]
Move2=[!SetVariable marquee2 "(#marquee2# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText2][!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 MeterText3][!Redraw]
Move3=[!SetVariable marquee3 "(#marquee3# - 1)"][!UpdateMeasure MeasureActionTimer][!UpdateMeter MeterText3][!Redraw]
DoOver3=[!CommandMeasure MeasureActionTimer "Execute 3"]
DynamicVariables=1

[MeterBackground]
Meter=Shape
Shape=Rectangle 1,1,180,106,6 | StrokeWidth 2 | Stroke Color 50,50,50 | Fill Color 15,15,15

[MeterTextContainer]
Meter=Image
SolidColor=255,255,255,255
X=16
Y=16
W=150
H=76

[MeterText1]
Meter=String
MeterStyle=StyleText
X=#marquee1#
Y=1
Text=#text1#

[MeterText2]
Meter=String
MeterStyle=StyleText
X=#marquee2#
Text=#text2#

[MeterText3]
Meter=String
MeterStyle=StyleText
X=#marquee3#
Text=#text3#
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Help with freezing marquees.

Post by balala »

chamlex wrote: February 20th, 2020, 7:42 pm So I went back and tried the scrolling only text which is posted below. Is this supposed to scroll indefinitely? It scrolls then shows errors in the error log that an Action List is still running and when those appear the scrolling stop.
I left it for more then 10 minutes and no problems so far. In log there is only a 'ActionList3' is currently running (XXX.ini - [MeasureActionTimer]) 'ActionList3' is currently running message. And the string still scrolls.
So not sure what is going on there. Maybe pack the config and upload the package, to can check what exactly you have there.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Help with freezing marquees.

Post by balala »

Got it! After a longer period (don't exactly know how long, however around 20 - 30 minutes) the first string frozen. But the middle is still scrolling.
Right now I don't have enough time to work with it, because here the midnight is approaching, but tomorrow will take a look, if you want.
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Re: Help with freezing marquees.

Post by chamlex »

Awesome thanks. Yeah the first time i did it it ran with no problems but now it seems it randomly occurs that I get the errors. I figure it’s probably a simple thing I’m forgetting or didn’t set to fix it.
chamlex
Posts: 15
Joined: February 16th, 2020, 12:13 am

Re: Help with freezing marquees.

Post by chamlex »

So apparently I'm not alone with this issue. This post https://forum.rainmeter.net/viewtopic.php?f=5&t=34703 outlines another person with the issue using Action Timers and getting the same errors. I might look into using marquee lua to see if i can get a scrolling marquee for when the text is too long.
Last edited by Brian on February 21st, 2020, 4:37 am, edited 1 time in total.
Reason: Removed session id from link.