Try my skin, which isn't perfect as I can't get it to act on attack quickly enough, so the RMS value again goes above the Peak Value, which it should never do.But it achieves the hold and almost works correctly, apart from needing faster reaction to increases in RMS volume above the Peaks current state. But I have no idea how to achieve that.
I'm not sure, but I think the key is in the use of the IfFalseAction2 condition of the [mPeakLeft] measure.
Sorry for the quick succession of posts again!
Code:
[Rainmeter]Update=25BackgroundMode=2SolidColor=255,255,255,20AccurateText=1MiddleMouseUpAction=[!Refresh][Metadata]Name=VU MetreAuthor=sl23Information=VU MetreVersion=2024.6.30License=CC BY 3.0[Variables]AquaDark=0,255,255,200Green=128,255,0Orange=255,170,0OrangeDark=255,128,0Red=255,100,100White20=255,255,255,10PeakDelayL=0PeakDelayR=0========================================; Measures========================================[mAudio]Measure=PluginPlugin=AudioLevelPort=OutputRMSAttack=52RMSDecay=300RMSGain=2.0PeakAttack=50PeakDecay=3000PeakGain=2.0DynamicVariables=1[mLeft]Measure=PluginPlugin=AudioLevelParent=mAudioType=RMSChannel=L[mRight]Measure=PluginPlugin=AudioLevelParent=mAudioType=RMSChannel=R[mPeakLeft]Measure=PluginPlugin=AudioLevelParent=mAudioType=PeakChannel=LOnChangeAction=[!SetVariable PeakDelayL "[#CURRENTSECTION#]"]IfCondition=#CURRENTSECTION#=1IfTrueAction=[!ShowMeter ClipL][!UpdateMeter ClipL][!Redraw]IfFalseAction=[!Delay 1000][!HideMeter ClipL][!UpdateMeter ClipL][!Redraw]IfCondition2=(#CURRENTSECTION# < #PeakDelayL#)IfTrueAction2=[!PauseMeasure #CURRENTSECTION#][!Delay 1000][!UnPauseMeasure #CURRENTSECTION#]IfFalseAction2=[!UnPauseMeasure #CURRENTSECTION#]DynamicVariables=1[mPeakRight]Measure=PluginPlugin=AudioLevelParent=mAudioType=PeakChannel=ROnChangeAction=[!SetVariable PeakDelayR "[#CURRENTSECTION#]"]IfCondition=#CURRENTSECTION#=1IfTrueAction=[!ShowMeter ClipR][!UpdateMeter ClipR][!Redraw]IfFalseAction=[!Delay 1000][!HideMeter ClipR][!UpdateMeter ClipR][!Redraw]IfCondition2=(#CURRENTSECTION# < #PeakDelayR#)IfTrueAction2=[!PauseMeasure #CURRENTSECTION#][!Delay 1000][!UnPauseMeasure #CURRENTSECTION#];IfFalseAction2=[!UnPauseMeasure #CURRENTSECTION#]DynamicVariables=1========================================; Meters========================================[sClip]Shape=Rectangle 0,0,5,4 | Fill Color #Red# | StrokeWidth 0Y=rHidden=1[sPeak]Shape=Rectangle 0,0,2,4 | Fill Color #AquaDark# | StrokeWidth 0DynamicVariables=1Y=r[sBar]BarOrientation=HorizontalBarColor=#Green#,70SolidColor=#White20#W=200H=4Y=r;-------------------------------------[OutBarL]Meter=BarMeasureName=mLeftMeterStyle=sBarX=0[ClipL]Meter=ShapeMeterStyle=sClipX=5R[PeakBarL]Meter=ShapeMeterStyle=sPeakX=([OutBarL:X]+[OutBarL:W]*[mPeakLeft]);-------------------------------------[OutBarR]Meter=BarMeasureName=mRightMeterStyle=sBarX=0Y=2R[ClipR]Meter=ShapeMeterStyle=sClipX=5R[PeakBarR]Meter=ShapeMeterStyle=sPeakX=([OutBarR:X]+[OutBarR:W]*[mPeakRight])
I'm not sure, but I think the key is in the use of the IfFalseAction2 condition of the [mPeakLeft] measure.
Sorry for the quick succession of posts again!
Statistics: Posted by sl23 — Yesterday, 11:03 pm