It is currently March 28th, 2024, 3:39 pm

Many questions

Get help with creating, editing & fixing problems with skins
Zernoxi
Posts: 9
Joined: April 24th, 2018, 5:50 am

Many questions

Post by Zernoxi »

Hello, I'm pretty new to Rainmeter so I have some questions that I need to find out:
1) How do I change the Monstercat cover and song information to a different angle e.g 20 degrees?
2) I order to use WebNowPlaying, do I have to be using Firefox or Chrome, or are there other programs?
3) I have been using the extension WebNowPlaying on Firefox and when I change network.websocket.allowInsecureFromHTTPS to true, it works. However, when I play my music on Windows Media Player, it doesn't work. Does it mean it can only play from WebNowPlaying or Windows Media Player?
User avatar
balala
Rainmeter Sage
Posts: 16109
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Many questions

Post by balala »

Zernoxi wrote:1) How do I change the Monstercat cover and song information to a different angle e.g 20 degrees?
What you mean by this? You would like to rotate them?
Zernoxi
Posts: 9
Joined: April 24th, 2018, 5:50 am

Re: Many questions

Post by Zernoxi »

balala wrote:What you mean by this? You would like to rotate them?
Sorry but yes, I was meant to say rotate.
User avatar
Active Colors
Moderator
Posts: 1251
Joined: February 16th, 2012, 3:32 am
Location: Berlin, Germany
Contact:

Re: Many questions

Post by Active Colors »

Zernoxi wrote: 1) How do I change the Monstercat cover and song information to a different angle e.g 20 degrees?
I'm not familiar with Monstercat skin (post next time a link to a skin you are referring to, or piece of code) but you should be able to do this with Angle featurehttps://docs.rainmeter.net/manual-beta/meters/string/#Angle
Zernoxi wrote: 2) I order to use WebNowPlaying, do I have to be using Firefox or Chrome, or are there other programs?
You better ask this question in the WebNowPlaying thread on the forums https://forum.rainmeter.net/viewtopic.php?f=18&t=26619
Zernoxi wrote: 3) I have been using the extension WebNowPlaying on Firefox and when I change network.websocket.allowInsecureFromHTTPS to true, it works. However, when I play my music on Windows Media Player, it doesn't work. Does it mean it can only play from WebNowPlaying or Windows Media Player?
Same as in the second. I am not aware how this plugin works because it is not official.
User avatar
balala
Rainmeter Sage
Posts: 16109
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Many questions

Post by balala »

Zernoxi wrote:Sorry but yes, I was meant to say rotate.
I'd use a TransformationMatrix option to rotate all those meters.
First add the following variables to the [Variables] section of the @Resources\variables.inc file:

Code: Select all

[Variables]
...
Angle=-30
RotationCenterX=0
RotationCenterY=0
Take care to not remove any of the existing variables, just add these ones.
Also note that if the value of the Angle variable is positive, the rotation will be counter-clockwise and obviously for negative values the rotation will be clockwise.
Add the following option to the [MeterCover] meter of the monstercat-visualizer\Song Information\Cover\Cover.ini file (to rotate the cover) and to the [MeterArtist] and [MeterTrack] meters of the monstercat-visualizer\Song Information\Left.ini or monstercat-visualizer\Song Information\Right.ini file (to rotate the artist, respectively the title): TransformationMatrix=(Cos(Rad(#Angle#)));(-Sin(Rad(#Angle#)));(Sin(Rad(#Angle#)));(Cos(Rad(#Angle#)));(#RotationCeneterX#-#RotationCeneterX#*Cos(Rad(#Angle#))-#RotationCeneterY#*Sin(Rad(#Angle#)));(#RotationCeneterY#+#RotationCeneterX#*Sin(Rad(#Angle#))-#RotationCeneterY#*Sin(Rad(#Angle#))).
Now here you have a problem. Depending on the angle and where the center of rotation is, the strings / cover can go partially (or even worst, totally) outside of the skin. To fix this issue, you can:
  • Move the meters. For this add certain numeric value to the X and Y options of the meters (well, probably you should have to add to the options of the [MeterCover] (monstercat-visualizer\Song Information\Cover\Cover.ini), respectively to the [MeterArtist] (monstercat-visualizer\Song Information\Left.ini or Right.ini) meters, but shouldn't to the [MeterTrack] meter, because this one is positioned relatively. I can't recommend concrete values, because as I said, this is also depending on the rotation angle you'd like to use.
  • Set the size of the skins, through some SkinWidth and SkinHeight options added to the [Rainmeter] sections of the skin(s). Again what concrete values will you use, depends on the new position and rotation angle of the meters.
You probably will have to make a few tries to find the best values of the numbers you will use.
User avatar
balala
Rainmeter Sage
Posts: 16109
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Many questions

Post by balala »

Active Colors wrote:but you should be able to do this with Angle featurehttps://docs.rainmeter.net/manual-beta/meters/string/#Angle
The Angle option can be indeed used to rotate the String meters (however I don't recommend it, because it is hard to control the rotation center - or anchor point), but can't be, to rotate the Image meters (the cover).
Zernoxi
Posts: 9
Joined: April 24th, 2018, 5:50 am

Re: Many questions

Post by Zernoxi »

balala wrote:I'd use a TransformationMatrix option to rotate all those meters.
First add the following variables to the [Variables] section of the @Resources\variables.inc file:

Code: Select all

[Variables]
...
Angle=-30
RotationCenterX=0
RotationCenterY=0
Do I just add these variables anywhere or does it need to be specific?
(#RotationCeneterX#-#RotationCeneterX#*Cos(Rad(#Angle#))-#RotationCeneterY#*Sin(Rad(#Angle#)));(#RotationCeneterY#+#RotationCeneterX#*Sin(Rad(#Angle#))-#RotationCeneterY#*Sin(Rad(#Angle#))).
Do you mean the rotation center of both x and y are 0 from the variables before?

Code: Select all

#ScaleSongInformation#
How do I make the rotation center scale to the song information?

EDIT:

Code: Select all

TransformationMatrix=0.93969;-0.34202;0.34202;0.93969;((#BarGap#*#ScaleVisualizer#)-(#BarGap#*#ScaleVisualizer#)*0.93969-(30*#ScaleSongInformation#)*0.34202);((30*#ScaleSongInformation#)+(#BarGap#*#ScaleVisualizer#)*0.34202-(30*#ScaleSongInformation#)*0.34202)
This is probably wrong...

Code: Select all

Meter=String
MeasureName=MeasureTrack
X=0r
Y=(-20*#ScaleSongInformation#)R
FontFace=#Font2#
FontSize=20
FontEffectColor=#BorderColor#
InlineSetting=Color | #TextColor#
InlineSetting2=Case | Upper
InlineSetting3=Shadow | 4 | 4 | 0 | #DropShadowColor#
ClipString=2
AntiAlias=1
Text="%1"
Group=GroupDynamicColors | GroupShadowMeters
TransformationMatrix=0.93969;-0.34202;0.34202;0.93969;(0r-0r*0.93969-(-20*#ScaleSongInformation#)R*0.34202);((-20*#ScaleSongInformation#)+0r-0r*0.93969*0.34202)-(-20*#ScaleSongInformation#)*0.34202)
Just tested this, it works but it cuts of the song information.
balala wrote:Move the meters. For this add certain numeric value to the X and Y options of the meters (well, probably you should have to add to the options of the [MeterCover] (monstercat-visualizer\Song Information\Cover\Cover.ini), respectively to the [MeterArtist] (monstercat-visualizer\Song Information\Left.ini or Right.ini) meters, but shouldn't to the [MeterTrack] meter, because this one is positioned relatively. I can't recommend concrete values, because as I said, this is also depending on the rotation angle you'd like to use.
How do I numeric values of X and Y?

Code: Select all

[Rainmeter]
Group=SongInfo
Update=50
DynamicWindowSize=1
AccurateText=1

; = IMPORTANT =
; = For configuring the rainmeter skin, right-click the visualizer and click on "Open settings".
; = You can also open the variables.ini file located in:
; = "My Documents\Rainmeter\Skins\Monstercat Visualizer\@Resources"

; Small context menu when you right-click the skin
ContextTitle=" Open settings"
ContextAction=[!ActivateConfig "#ROOTCONFIG#\Settings" "general.ini"]
ContextTitle2=" Open variables file"
ContextAction2=["#@#variables.ini"]
ContextTitle3=" Toggle background"
ContextAction3=[!ToggleConfig "#ROOTCONFIG#\Background" "Background.ini"]

[Metadata]
Name=Monstercat Visualizer for Rainmeter
Author=marcopixel
License=MIT License
Information=An realtime audio visualizer for Rainmeter similar to the ones used in the Monstercat videos.

[Variables]
; Includes the variables used for the skin.
@include=#@#variables.ini

; Include media player and styling measures.
@include2=#@#include\Measure#MPMode#.inc
@include3=#@#include\MeasureStyling.inc

; Meter Artist & Track - show artists name and track name
[MeterArtist]
Meter=String
MeasureName=MeasureArtist
W=100
X=(650*#ScaleSongInformation#)
Y=(130*#ScaleSongInformation#)
FontFace=#Font1#
FontSize=(25*#ScaleSongInformation#)
FontEffectColor=#BorderColor#
StringAlign=Right
InlineSetting=Color | #TextColor#
InlineSetting2=Case | Upper
InlineSetting3=Shadow | 4 | 4 | 0 | #DropShadowColor#
ClipString=2
AntiAlias=1
Text="%1"
Padding=0,0,0,0
Group=GroupDynamicColors | GroupShadowMeters
TransformationMatrix=0.92718;-0.37460;0.37460;0.92718;-30.178;100

[MeterTrack]
Meter=STRING
MeasureName=MeasureTrack
W=50
X=(650*#ScaleSongInformation#)
Y=(65*#ScaleSongInformation#)R
FontFace=#Font2#
FontSize=15
FontEffectColor=#BorderColor#
InlineSetting=Color | #TextColor#
InlineSetting2=Case | Upper
InlineSetting3=Shadow | 4 | 4 | 0 | #DropShadowColor#
StringAlign=RightBottom
ClipString=2
AntiAlias=1
Text="%1"
Padding=0,0,0,0
Group=GroupDynamicColors | GroupShadowMeters
TransformationMatrix=0.92718;-0.37460;0.37460;0.92718;-30.178;100
ClipString=2 seems to not work...
Attachments
Untitled.png
User avatar
balala
Rainmeter Sage
Posts: 16109
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Many questions

Post by balala »

Zernoxi wrote:Do I just add these variables anywhere or does it need to be specific?
Normally you could add it anywhere under the [Variables] section of the @Resources\variables.inc file, but trying it out, I found that if you add them to the end of the file, the rotation won't work. I don't know why, but adding them immediately after the [Variables] section name, it works well.
Zernoxi wrote:Do you mean the rotation center of both x and y are 0 from the variables before?
Exactly. But you can easily change this, changing the values of the RotationCenterX and RotationCenterY variables.
Zernoxi wrote:How do I make the rotation center scale to the song information?
The meters used to show the title and the artist have defined sizes. So, as you have the skin written, you don't have to scale anything. For such scaling, first you have to make the skin to adapt its size to the title and artist name.
For this, open the monstercat-visualizer\@Resources\include\MeasureStyling.inc file and remove the IfEqualValue, IfEqualAction, IfBelowValue and IfBelowAction options of the [MeasureClipSongInformation] measure. Also remove the ClipString, ClipStringW and ClipStringH options of the [MeterArtist] and [MeterTrack] meters.
After a refresh the size of the skin will adapt according to the title and artist. Now replace the TransformationMatrix options of the [MeterArtist] and [MeterTrack] meters with the following one: TransformationMatrix=(Cos(Rad(#Angle#)));(-Sin(Rad(#Angle#)));(Sin(Rad(#Angle#)));(Cos(Rad(#Angle#)));((#CURRENTCONFIGWIDTH#/2)-(#CURRENTCONFIGWIDTH#/2)*Cos(Rad(#Angle#))-(#CURRENTCONFIGHEIGHT#/2)*Sin(Rad(#Angle#)));((#CURRENTCONFIGHEIGHT#/2)+(#CURRENTCONFIGWIDTH#/2)*Sin(Rad(#Angle#))-(#CURRENTCONFIGHEIGHT#/2)*Cos(Rad(#Angle#))).
As I said, at this pont you have to add a SkinWidth and a SkinHeight options to the [Rainmeter] section, to set the size of the skin. But here is a problem: dynamic variables can't be used in the [Rainmeter] section. This means that you have to precisely set up the size of the skin, adding precise numeric values. But what value would be the best, depends on the length of the title and artist names.
I don't have a good solution yet.
Zernoxi wrote:Just tested this, it works but it cuts of the song information.
That's exactly what I was talking about above. To not cut of those strings, you have to set the size of the skin. Unfortunately I couldn't figure out yet how to do this in a good way.
Zernoxi wrote:How do I numeric values of X and Y?
You mean how to add numeric values to the X and Y? If so, that's easy:

Code: Select all

[MeterArtist]
...
X=(650*#ScaleSongInformation#+VALUE-FOR-X)
Y=(130*#ScaleSongInformation#-VALUE-FOR-Y)
...

[MeterTrack]
...
X=(650*#ScaleSongInformation#+VALUE-FOR-X)
Y=(65*#ScaleSongInformation#+VALUE-FOR-Y)R
...
Zernoxi
Posts: 9
Joined: April 24th, 2018, 5:50 am

Re: Many questions

Post by Zernoxi »

balala wrote:Normally you could add it anywhere under the [Variables] section of the @Resources\variables.inc file, but trying it out, I found that if you add them to the end of the file, the rotation won't work. I don't know why, but adding them immediately after the [Variables] section name, it works well.
When I do this it rotates the visualiser instead.
balala wrote:The meters used to show the title and the artist have defined sizes. So, as you have the skin written, you don't have to scale anything. For such scaling, first you have to make the skin to adapt its size to the title and artist name.
For this, open the monstercat-visualizer\@Resources\include\MeasureStyling.inc file and remove the IfEqualValue, IfEqualAction, IfBelowValue and IfBelowAction options of the [MeasureClipSongInformation] measure. Also remove the ClipString, ClipStringW and ClipStringH options of the [MeterArtist] and [MeterTrack] meters.
After a refresh the size of the skin will adapt according to the title and artist. Now replace the TransformationMatrix options of the [MeterArtist] and [MeterTrack] meters with the following one: TransformationMatrix=(Cos(Rad(#Angle#)));(-Sin(Rad(#Angle#)));(Sin(Rad(#Angle#)));(Cos(Rad(#Angle#)));((#CURRENTCONFIGWIDTH#/2)-(#CURRENTCONFIGWIDTH#/2)*Cos(Rad(#Angle#))-(#CURRENTCONFIGHEIGHT#/2)*Sin(Rad(#Angle#)));((#CURRENTCONFIGHEIGHT#/2)+(#CURRENTCONFIGWIDTH#/2)*Sin(Rad(#Angle#))-(#CURRENTCONFIGHEIGHT#/2)*Cos(Rad(#Angle#))).
As I said, at this pont you have to add a SkinWidth and a SkinHeight options to the [Rainmeter] section, to set the size of the skin. But here is a problem: dynamic variables can't be used in the [Rainmeter] section. This means that you have to precisely set up the size of the skin, adding precise numeric values. But what value would be the best, depends on the length of the title and artist names.
I don't have a good solution yet.
May I ask what does #CURRENTCONFIGHEIGHT# and #CURRENTCONFIGWIDTH# does to the skin and what values do I need to put in?

Code: Select all

[Rainmeter]
Group=SongInfo
Update=50
DynamicWindowSize=1
AccurateText=1
SkinWidth=#CURRENTCONFIGWIDTH#
SkinHeight=#CURRENTCONFIGHEIGHT#

; = IMPORTANT =
; = For configuring the rainmeter skin, right-click the visualizer and click on "Open settings".
; = You can also open the variables.ini file located in:
; = "My Documents\Rainmeter\Skins\Monstercat Visualizer\@Resources"

; Small context menu when you right-click the skin
ContextTitle=" Open settings"
ContextAction=[!ActivateConfig "#ROOTCONFIG#\Settings" "general.ini"]
ContextTitle2=" Open variables file"
ContextAction2=["#@#variables.ini"]
ContextTitle3=" Toggle background"
ContextAction3=[!ToggleConfig "#ROOTCONFIG#\Background" "Background.ini"]

[Metadata]
Name=Monstercat Visualizer for Rainmeter
Author=marcopixel
License=MIT License
Information=An realtime audio visualizer for Rainmeter similar to the ones used in the Monstercat videos.

[Variables]
; Includes the variables used for the skin.
@include=#@#variables.ini

; Include media player and styling measures.
@include2=#@#include\Measure#MPMode#.inc
@include3=#@#include\MeasureStyling.inc

; Meter Artist & Track - show artists name and track name
[MeterArtist]
Meter=String
MeasureName=MeasureArtist
X=(#SkinWidth#-5)
Y=(30*#ScaleSongInformation#)
FontFace=#Font1#
FontSize=(30*#ScaleSongInformation#)
FontEffectColor=#BorderColor#
StringAlign=Right
InlineSetting=Color | #TextColor#
InlineSetting2=Case | Upper
InlineSetting3=Shadow | 4 | 4 | 0 | #DropShadowColor#

AntiAlias=1
Text="%1"
Group=GroupDynamicColors | GroupShadowMeters


[MeterTrack]
Meter=STRING
MeasureName=MeasureTrack
X=(#SkinWidth#-5)
Y=(-20*#ScaleSongInformation#)R
FontFace=#Font2#
FontSize=(20*#ScaleSongInformation#)
FontEffectColor=#BorderColor#
StringAlign=Right
InlineSetting=Color | #TextColor#
InlineSetting2=Case | Upper
InlineSetting3=Shadow | 4 | 4 | 0 | #DropShadowColor#

AntiAlias=1
Text="%1"
Group=GroupDynamicColors | GroupShadowMeters
TransformationMatrix=0.92718;-0.37460;0.37460;0.92718;((#CURRENTCONFIGWIDTH#/2)-(#CURRENTCONFIGWIDTH#/2)*0.92718)-(#CURRENTCONFIGHEIGHT#/2)*0.37460);((#CURRENTCONFIGHEIGHT#/2)+(#CURRENTCONFIGWIDTH#/2)*0.37460)-(#CURRENTCONFIGHEIGHT#/2)*0.92718)
Makes the text cut more than before, I did all the others steps about deleting IfEqualValue, IfEqualAction, IfBelowValue and IfBelowAction options of the [MeasureClipSongInformation] measure. SkingWidth and Height don't work using this code.
User avatar
balala
Rainmeter Sage
Posts: 16109
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Many questions

Post by balala »

Zernoxi wrote:When I do this it rotates the visualiser instead.
No way. Adding just the variables doesn't rotate anything. For rotation, beside the variables, the TransformationMatrix is also required.
So, will be rotated the meters which have the TransformationMatrix option added.
Zernoxi wrote:May I ask what does #CURRENTCONFIGHEIGHT# and #CURRENTCONFIGWIDTH# does to the skin and what values do I need to put in?
#CURRENTCONFIGHEIGHT# and #CURRENTCONFIGWIDTH# are returning the size of the current skin. Adding the SkinWidth and SkinHeight options to the [Rainmeter] section as you did, doesn't have any practical purposes, because the used variables are returning the width and height of the skin, but it's obvious that the width and height of the skin are equal with these variables.
What I said instead is that you should have to use numerical and well specified values, but the problem is that you can't know how long the title and the artist name will be. That's why I said that I have no good solution for this question. At least I couldn't find one. Maybe someone else has one, but I don't. Sorry...
Post Reply