It is currently March 29th, 2024, 3:25 pm

Rotating Visualizer

Get help with creating, editing & fixing problems with skins
Joshlucpoll
Posts: 4
Joined: January 24th, 2018, 4:22 pm

Rotating Visualizer

Post by Joshlucpoll »

Hi, I've got a visualizer skin: https://goo.gl/vP7QFE and I wanted to rotate it 270 degrees and put on the side of my desktop.
Here is the Code:

Code: Select all

[Metadata]
Author=FreezingClouds
;Adapted from MarcoPixel's Monstercat Visualizer for Rainmeter
Name=Radian Linear Visualizer
Version=1.9.3
[Rainmeter]
Update=15
;1000/15 = ~67 updates per second
RightMouseDownAction=[!SkinCustomMenu]
AccurateText=1
ContextTitle="Open settings"
ContextAction=[!ActivateConfig "Radian\LinearVisualizer\Options" "Options.ini"]
ContextTitle2=---
ContextTitle3="Manage skin"
ContextAction3=[!Manage Skins "Radian\LinearVisualizer" "LinearVisualizer.ini"]
ContextTitle4="Refresh skin"
ContextAction4=[!Refresh]
ContextTitle5="Unload skin"
ContextAction5=[!DeactivateConfig]
ContextTitle6=---
ContextTitle7="Refresh all"
ContextAction7=[!RefreshApp]
ContextTitle8="Exit rainmeter"
ContextAction8=[!Quit]
[Radian\LinearVisualizer]
AlwaysOnTop=-2
;Place visualizer on desktop, not over windows
[Variables]
@include=#@#Linear\LinearVariables.inc
;Import variables
BarHeight=(826*#Scale#)/3
SkinWidth=((#BarGap#*62+#BarWidth#*63)*#Scale#)
Cover1="#@#nocover.png"
Cover2="#@#nocover.png"
;Initialize coverflip variables
BarColor=#Color#
Alpha=0
[MeasureMediaPlayer]
Measure=String
UpdateDivider=-1
String=#PlayerName#
IfMatch=Spotify
IfMatchAction=[!SetOption ProgressBar LeftMouseUpAction ""][!SetOption ProgressBarInv LeftMouseUpAction ""]
IfMatch2=Youtube
IfMatchAction2=[!SetOption Artist Text "YouTube"][!SetOption Track Text "Now Playing"]
Substitute="Spotify":"SpotifyPlugin.dll","iTunes":"NowPlaying","WMP":"NowPlaying","AIMP":"NowPlaying","CAD":"NowPlaying","MediaMonkey":"NowPlaying","Winamp":"NowPlaying"
;Returns plugin to use for media player
[MeasurePort]
UpdateDivider=-1
Measure=String
String=#Port#
IfMatch="Input"
IfMatchAction=[!SetOption Artist Text "Microphone"][!SetOption Track Text "Input"]
[MeasurePlayer]
Measure=Plugin
Plugin=NowPlaying
PlayerName=#PlayerName#
TrackChangeAction=[!ShowFade][!SetVariable Cover1 "#Cover2#"][!SetOption FlipCounter Formula 0]
;If track changes, set cover 1 to cover 2 (new cover), and reset flipcounter
PlayerType=Status
IfCondition=(MeasurePlayer=0)&&(#AutoHideVisualizer#=1)
IfTrueAction=[!HideFade]
IfFalseAction=[!ShowFade]
OnUpdateAction=[!SetVariable Cover2 "[MeasureCover]"]
;Set cover 2 to current cover
[MeasureTrack]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=Title
Type=TrackName
UpdateDivider=20
Substitute="":"No Track"
;Return track name
[MeasureArtist]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=Artist
Type=ArtistName
UpdateDivider=20
Substitute="":"No Artist"
;Return artist name
[MeasureCover]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=Cover
Type=AlbumArt
DefaultPath=#@#nocover.png
CoverPath=#@#Cover.png
Substitute="":"#@#nocover.png"
UpdateDivider=20
;Return cover image path
[MeasureProgress]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
Type=Progress
PlayerType=Progress
IfCondition=(MeasureProgress=99)&&(#AutoHideVisualizer#=1)
IfTrueAction=[!HideFade]
UpdateDivider=5
;Return progress; if 99% thru track, hide skin
[MeasurePosition]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=Position
Type=Position
IfMatch=00:00
IfMatchAction=[!ShowFade]
UpdateDivider=2
;Return track position in time; if at 00:00, show skin
[MeasureLength]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=Duration
Type=Length
UpdateDivider=20
;Return track length
[MeasurePlayPause]
Measure=Plugin
Plugin=[MeasureMediaPlayer]
PlayerName=#PlayerName#
PlayerType=State
Type=Playing
Substitute="0":"#@#/Icons/Play.png","1":"#@#/Icons/Pause.png","2":"#@#/Icons/Play.png"
UpdateDivider=-1
[ArtistExtractor]
Measure=Script
ScriptFile=#@#Linear\InfoExtractor.lua
Track=[MeasureTrack]
InfoType=1
Format=#TrackNameFormat#
DynamicVariables=1
IfMatch="0"
IfMatchAction=[!SetOption Artist MeasureName MeasureArtist]
IfNotMatchAction=[!SetOption Artist MeasureName ArtistExtractor]
Substitute="Track":"No Artist","":"No Artist"
UpdateDivider=10
[TrackExtractor]
Measure=Script
ScriptFile=#@#Linear\InfoExtractor.lua
Track=[MeasureTrack]
InfoType=2
Format=#TrackNameFormat#
DynamicVariables=1
IfMatch="0"
IfMatchAction=[!SetOption Track MeasureName MeasureTrack]
IfNotMatchAction=[!SetOption Track MeasureName TrackExtractor]
Substitute="":"No Track"
UpdateDivider=10
[MediaIconIdentifier]
Measure=String
String=#PlayerName#
IfMatch=WMP
IfMatchAction=[!SetOption WMPMediaPlayer ImageName #@#/Icons/WMP20pW.png][!SetOption iTunesMediaPlayer ImageName #@#/Icons/iTunes20pB.png][!SetOption SpotifyMediaPlayer ImageName #@#/Icons/Spotify20pB.png]
IfNotMatchAction=[!SetOption WMPMediaPlayer ImageName #@#/Icons/WMP20pB.png]
IfMatch2=iTunes
IfMatchAction2=[!SetOption WMPMediaPlayer ImageName #@#/Icons/WMP20pB.png][!SetOption iTunesMediaPlayer ImageName #@#/Icons/iTunes20pW.png][!SetOption SpotifyMediaPlayer ImageName #@#/Icons/Spotify20pB.png]
IfNotMatchAction2=[!SetOption iTunesMediaPlayer ImageName #@#/Icons/iTunes20pB.png]
IfMatch3=Spotify
IfMatchAction3=[!SetOption WMPMediaPlayer ImageName #@#/Icons/WMP20pB.png][!SetOption iTunesMediaPlayer ImageName #@#/Icons/iTunes20pB.png][!SetOption SpotifyMediaPlayer ImageName #@#/Icons/Spotify20pW.png]
IfNotMatchAction3=[!SetOption SpotifyMediaPlayer ImageName #@#/Icons/Spotify20pB.png]
UpdateDivider=-1
[ScrubbingCorrection]
Measure=Calc
OnChangeAction=[!CommandMeasure MeasurePlayer "SetPosition [ScrubbingCorrection]"]
[MeasureFull]
Measure=Calc
Formula=1
UpdateDivider=-1
IfCondition=#MirrorVisualizer#=1
IfTrueAction=[!SetOption Artist StringAlign Right]
[MeasureBlank]
Measure=Calc
Formula=0
UpdateDivider=-1
[ColorController]
Measure=Script
ScriptFile=#@#Linear\ColorController.lua
[FlipCounter]
Measure=Calc
Formula=FlipCounter+3
IfCondition=FlipCounter>=100
IfTrueAction=[!SetOption FlipCounter Formula 100]
IfCondition2=FlipCounter=0
IfTrueAction2=[!SetOption FlipCounter Formula "FlipCounter+3"]
[ImageMea]
Measure=Script
ScriptFile=#@#Linear\CoverFlip.lua
Position=[FlipCounter]
ImageOne=#Cover1#
ImageTwo=#Cover2#
Substitute="0":"#@#nocover.png"
[PositionMea]
Measure=Script
ScriptFile=#@#Linear\CoverFlip.lua
Mode=1
Position=[FlipCounter]
[HeightMea]
Measure=Script
ScriptFile=#@#Linear\CoverFlip.lua
Mode=2
Position=[FlipCounter]
@include=#@#Linear\Equalizers.inc
;Inserts audio extractors, processors, and equalizers
[Background]
Meter=Bar
MeasureName=MeasureBlank
UpdateDivider=-1
W=(#SkinWidth#*(#MirrorVisualizer#+1))
H=(#DualVisualizers# = 0 ? (654*#Scale#+3):(1116*#Scale#-2))
SolidColor=#BackgroundColor#
Hidden=#HideBackground#
[Bars]
@include=#@#Linear\Bars.inc
@include2=
@include3=
@include4=
;Inserts bars
[ProgressBar]
Meter=Bar
MeasureName=MeasureProgress
BarOrientation=Horizontal
Y=(#HideRhythmBar# = 0 ? (#BarHeight#+144*#Scale#) : (#BarHeight#+162*#Scale#))
W=#SkinWidth#
H=(5*#Scale#)
BarColor=#ProgressBarColor#
SolidColor=255,255,255,50
Hidden=#HideProgressBar#
Flip=#MirrorVisualizer#
LeftMouseUpAction=[!SetOption ScrubbingCorrection Formula $MouseX:%$+1][!UpdateMeasure ScrubbingCorrection]
UpdateDivider=(#HideProgressBar# = 1 ? -1 : 1)
Group=ProgressBar
[MeterPlayerCover]
Meter=Image
MeasureName=ImageMea
X=([PositionMea]*#Scale#*2+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(#BarHeight#+(278-[HeightMea])*#Scale#)
W=((100-2*[PositionMea])*#Scale#*2)
H=([HeightMea]*#Scale#*2)
Padding=2,2,2,2
DynamicVariables=1
SolidColor=#CoverColor#
MouseOverAction=[!ShowMeterGroup "MediaControls"]
MouseLeaveAction=[!HideMeterGroup "MediaControls"]
Hidden=#HideTrackInformation#
[MeterPlayerOverlay]
Meter=Image
UpdateDivider=-1
X=2r
Y=2r
W=(200*#Scale#)
H=(200*#Scale#)
SolidColor=0,0,0,200
Hidden=1
Group=MediaControls
[MeterPrevious]
Meter=Image
ImageName=#@#/Icons/Previous.png
UpdateDivider=-1
X=(8*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(75*#Scale#)r
W=(48*#Scale#)
H=(48*#Scale#)
LeftMouseUpAction=[!CommandMeasure MeasurePlayer "Previous"]
AntiAlias=1
Hidden=1
Group=MediaControls
[MeterPlayPause]
Meter=Image
MeasureName=MeasurePlayPause
X=(24*#Scale#)R
Y=0r
W=(48*#Scale#)
H=(48*#Scale#)
LeftMouseUpAction=[!CommandMeasure MeasurePlayer "PlayPause"]
Hidden=1
Group=MediaControls
[MeterNext]
Meter=Image
ImageName=#@#/Icons/Next.png
UpdateDivider=-1
X=(22*#Scale#)R
Y=0r
W=(48*#Scale#)
H=(48*#Scale#)
LeftMouseUpAction=[!CommandMeasure MeasurePlayer "Next"]
AntiAlias=1
Hidden=1
Group=MediaControls
[MeterPosition]
Meter=String
MeasureName=MeasurePosition
X=(90*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(10*#Scale#)R
FontFace=Nexa Light
FontSize=(16*#Scale#)
FontColor=255,255,255
StringEffect=Shadow
AntiAlias=1
ClipString=2
StringAlign=Right
Text="%1"
Hidden=1
Group=MediaControls
[MeterDivider]
Meter=String
MeterStyle=MeterPosition
X=(100*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=0r
StringAlign=Left
Text="-"
Hidden=1
Group=MediaControls
[MeterLength]
Meter=String
MeterStyle=MeterPosition
MeasureName=MeasureLength
X=(120*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=0r
StringAlign=Left
Text="%1"
Group=MediaControls
[Artist]
Meter=String
MeasureName=MeasureArtist
X=(219*#Scale#+#MirrorVisualizer#*(#SkinWidth#-350*#Scale#))
Y=(#BarHeight#+(200*#Scale#)+#MirrorVisualizer#*28*#Scale#)
H=(100*#Scale#)
W=#SkinWidth#-(220*#Scale#)
DynamicVariables=1
FontFace=#Font1#
FontSize=(#FontSize1#*#Scale#)
FontColor=#TextColor#
AntiAlias=1
ClipString=2
StringCase=UPPER
Hidden=#HideTrackInformation#
[Track]
Meter=String
MeasureName=MeasureTrack
X=(225*#Scale#+#MirrorVisualizer#*(#SkinWidth#-90*#Scale#))
Y=(#MirrorVisualizer#*(-74*#Scale#))R
H=(60*#Scale#)
W=(#SkinWidth#-225*#Scale#)
FontFace=#Font2#
FontSize=(#FontSize2#*#Scale#)
FontColor=#TextColor#
AntiAlias=1
ClipString=1
StringCase=Upper
Hidden=#HideTrackInformation#
[WMPMediaPlayer]
Meter=Image
ImageName=#@#/Icons/WMP20pB.png
UpdateDivider=-1
X=(72*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(460*#Scale#)
W=(40*#Scale#)
H=(40*#Scale#)
Hidden=1
LeftMouseUpAction=[!WriteKeyValue Variables PlayerName "WMP" "#@#Linear\LinearVariables.inc"][!Refresh Radian\LinearVisualizer\Options][!Refresh]
Group=MediaControls
[iTunesMediaPlayer]
Meter=Image
ImageName=#@#/Icons/iTunes20pB.png
UpdateDivider=-1
X=(116*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(460*#Scale#)
W=(40*#Scale#)
H=(40*#Scale#)
BitmapImage=#@#/Icons/iTunes20p.png
BitmapFrames=2
Hidden=1
LeftMouseUpAction=[!WriteKeyValue Variables PlayerName "iTunes" "#@#Linear\LinearVariables.inc"][!Refresh Radian\LinearVisualizer\Options][!Refresh]
Group=MediaControls
[SpotifyMediaPlayer]
Meter=Image
ImageName=#@#/Icons/Spotify20pB.png
UpdateDivider=-1
X=(160*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(460*#Scale#)
W=(40*#Scale#)
H=(40*#Scale#)
Hidden=1
LeftMouseUpAction=[!WriteKeyValue Variables PlayerName "Spotify" "#@#Linear\LinearVariables.inc"][!Refresh Radian\LinearVisualizer\Options][!Refresh]
Group=MediaControls
[Version]
Meter=String
UpdateDivider=-1
X=(12*#Scale#+#MirrorVisualizer#*(#SkinWidth#-100*#Scale#))
Y=(638*#Scale#)
Text=v1.9.3
FontSize=(#FontSize2#*#Scale#*0.29)
FontColor=255,255,255
StringEffect=Shadow
Hidden=1
AntiAlias=1
Group=MediaControls
[RhyBar]
Meter=Bar
MeasureName=AudioProcessor_AVG
BarOrientation=Horizontal
Y=(#BarHeight#+156*#Scale#)
H=(10*#Scale#)
W=#SkinWidth#
BarColor=#RhythmBarColor#
SolidColor=255,255,255,50
Hidden=#HideRhythmBar#
Flip=#MirrorVisualizer#
UpdateDivider=(#HideRhythmBar# = 1 ? -1 : 1)
Group=RhyBar
Thanks
You do not have the required permissions to view the files attached to this post.
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5384
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: Rotating Visualizer

Post by eclectic-tech »

It is not possible to rotate this visualizer. :17denial

You could try to contact the author to request this feature, or try editing the code yourself, but it would require basically creating a new skin.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Rotating Visualizer

Post by balala »

eclectic-tech wrote:It is not possible to rotate this visualizer. :17denial
I'm probably going to contradict you, eclectic-tech. It's not easy, but using the TransformationMatrix and the Flip option, it would be possible. For first let's rotate just the bars of the visualizer, later we'll try to rotate the other elements of the skin, too.
So, Joshlucpoll, here is what you should have to do:
  • First open the @Resources\Linear\Bars.inc file (which contains the Bar meters of the visualizer) and add the following two options to the [MSBar] section:

    Code: Select all

    [MSBar]
    ...
    TransformationMatrix=(Cos(#Angle#));(-Sin(#Angle#));(Sin(#Angle#));(Cos(#Angle#));(-124-815*Cos(#Angle#)-330*Sin(#Angle#));(815+815*Sin(#Angle#)-330*Cos(#Angle#))
    Flip=1
    Don't remove the options which are there, just add these, beside the existing ones.
  • Now define the Angle variable, eg in the @Resources\Linear\LinearVariables.inc file. Add to the end of this file the Angle=-PI/2 variable.
  • And there is one more thing you have to do: set the height of the skin, otherwise the lower part of it won't be visible. Add the SkinHeight=815 option to the [Rainmeter] section of the Skins\Radian\LinearVisualizer\LinearVisualizer.ini file.
  • Now refresh your skin.
This solution isn't yet the final one. We'll have to furtherly work on it. But first please test it and let me know if it starts to look as you want.
Just two details I have to make you to know about:
  • The Update=15 option used into the [Rainmeter] section of the skin isn't valid. The lowest possible value of the Update is 16. Replace the Update=15 with Update=16. Details, in the second paragraph, here (however even the Update=15 option doesn't cause troubles).
  • The [Radian\LinearVisualizer] section of the Skins\Radian\LinearVisualizer\LinearVisualizer.ini file has nothing to look for here. It belongs to the Rainmeter.ini file, which keeps the settings of the previously used skins. Remove it.
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5384
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: Rotating Visualizer

Post by eclectic-tech »

@balala You are braver than me! ;-)

I hadn't considered TransformationMatrix because I seldom use it, but you are right that it may be possible...
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Rotating Visualizer

Post by balala »

eclectic-tech wrote:@balala You are braver than me! ;-)
No, I'm not. But as usually, everyone of us has sometimes ideas to which others have not thought before.
eclectic-tech wrote:I hadn't considered TransformationMatrix because I seldom use it, but you are right that it may be possible...
TransformationMatrix is a very powerful tool. I'm a big fan of it and it helped me many times. But indeed it's not always easy to be used.
Joshlucpoll
Posts: 4
Joined: January 24th, 2018, 4:22 pm

Re: Rotating Visualizer

Post by Joshlucpoll »

Ok, I've done everything you said to do and it's looking good. But the original visualizer is still present.
You do not have the required permissions to view the files attached to this post.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Rotating Visualizer

Post by balala »

Joshlucpoll wrote:Ok, I've done everything you said to do and it's looking good. But the original visualizer is still present.
It weird, I don't have two of them. Please pack the whole config and upload it, to can check.
Joshlucpoll
Posts: 4
Joined: January 24th, 2018, 4:22 pm

Re: Rotating Visualizer

Post by Joshlucpoll »

There
You do not have the required permissions to view the files attached to this post.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Rotating Visualizer

Post by balala »

Joshlucpoll wrote:There
Hi Joshlucpoll,
I'll try the skin tomorrow, because here the midnight is close.
Joshlucpoll
Posts: 4
Joined: January 24th, 2018, 4:22 pm

Re: Rotating Visualizer

Post by Joshlucpoll »

balala wrote:Hi Joshlucpoll,
I'll try the skin tomorrow, because here the midnight is close.
ok, thank you for helping me