{
	"approved" : true,
	"contentrating" : "Everyone",
	"description" : "A remake of the original Monstercat audio visualizer.\n\nI am in no way associated with Monstercat, this was just a project that I wanted to make.\n\nIf you see any bugs/problems, please add me on steam and DM me so I can fix them.\n\n[h1][b]SPOTIFY NOTES[/b][/h1]\nTo generate a token, you can goto [url=https://spotify.kahool.dev/]this link[/url] \n\nOnce you're on the site, you should be able to login to connect your Spotify account.\n\nThe page should then generate a long string of random letters. Copy and paste this code into wallpaper engine in the token textbox.\n\nIf the token doesn't work initially, try swapping to another wallpaper and then swapping back.\n\nMake sure your spotify is not in a private session as the wallpaper will not work.\n\n[b]DO NOT[/b] publish presets with your token, unless you want people to see what music you're listening to...\n\n[h1]Update 25[/h1]\n - Added logic checks to prevent unnecessary token refresh requests\n\n[h1]Update 24[/h1]\n - Migrated server hosting\n\n[h1]Update 23[/h1]\n - Removed unnecessary server requests\n\n[h1]Update 22[/h1]\n - Fixed audio processing\n\n[h1]Update 21[/h1]\n - Fixed background image not covering the screen again\n\n[h1]Update 20[/h1]\n - Fixed background image not loading on restart\n\n[h1]Update 19[/h1]\n - Fixed background image not covering the screen\n\n[h1]Update 18[/h1]\n - Fixed background image/colour options\n\n[h1]Update 17[/h1]\n - Introduced some more error handling for invalid spotify states\n - Increased timeout between server requests\n - Server response should happen more quickly on first token use\n\n[h1]Update 16[/h1]\n - Overhauled server code\n - Changed endpoints for token refreshes\n - Lowered minimum refresh rate\n\n\n[h1]Update 15[/h1]\n - Fixed problem connecting to server\n\n[h1]Update 14[/h1]\n - Fixed bar colour glitch\n\n[h1]Update 13[/h1]\n - Added legacy colour sync option\n\n[h1]Update 12[/h1]\n - Improved colour sync\n - Introduced vibrancy slider\n - Thanks to Jebsta\n\n[h1]Update 11[/h1]\n - Patched black background bug\n\n[h1]Update 10[/h1]\n - Fixed error 429 ~ Thanks to ChrisNix!\n\n[h1]Update 9[/h1]\n - Added Particle React option\n - Increased minimum update time (helps mitigate error 429)\n\n[h1]Update 8[/h1]\n - Fixed the \"Token not found\" error\n\n[h1]Update 7[/h1]\n - Refactored the code\n - Added progress bar option\n - Added offset for each element\n - Reorganised the properties\n - Added background colour option\n - Added option to shorten song titles\n - Added text alignment option\n - Added particle options\n - Fixed bugs with property changes\n\n[h1]Update 6[/h1]\n - More coherent error displays\n - Better error handling\n\n[h1]Update 5[/h1]\n - Added spotify support\n    - Sync colours to spotify\n    - Sync logo\n    - Change update rate\n - Added particle reactiveness option\n\n[h1]Update 4[/h1]\n - Background image now stretches\n - Added the option to emphasise peaks\n - Added the option to hide the logo background\n - Added the option to change the text colour\n - Fixed bugs\n - [b]This update broke the old presets[/b]\n\n[h1]Update 3[/h1]\n- Fixed particles getting stuck\n\n[h1]Update 2[/h1]\n- Added the option to use a custom logo (may still be a bit buggy)\n\n[h1]Update[/h1]\n- Made framerate controllable\n- Added customisable bar width and padding\n- Fixed some minor errors",
	"file" : "index.html",
	"general" : 
	{
		"properties" : 
		{
			"audioEqualize" : 
			{
				"index" : 17,
				"order" : 117,
				"text" : "Equalize",
				"type" : "bool",
				"value" : true
			},
			"audioPeaks" : 
			{
				"editable" : true,
				"index" : 16,
				"max" : 5,
				"min" : 1,
				"order" : 116,
				"text" : "Peaks",
				"type" : "slider",
				"value" : 2
			},
			"audioSettings" : 
			{
				"index" : 15,
				"order" : 115,
				"text" : "<br/><br/><h3>Audio Settings</h3>"
			},
			"backgroundColour" : 
			{
				"condition" : "backgroundEnabled.value==false",
				"index" : 58,
				"order" : 158,
				"text" : "Colour",
				"type" : "color",
				"value" : "0 0 0"
			},
			"backgroundEnabled" : 
			{
				"index" : 57,
				"order" : 157,
				"text" : "Image",
				"type" : "bool",
				"value" : false
			},
			"backgroundSettings" : 
			{
				"index" : 56,
				"order" : 156,
				"text" : "<br/><br/><h3>Background Settings</h3>"
			},
			"backgroundSrc" : 
			{
				"condition" : "backgroundEnabled.value==true",
				"index" : 59,
				"order" : 159,
				"text" : "Source",
				"type" : "file"
			},
			"barColour" : 
			{
				"condition" : "barCustomColour.value==false && ((spotifyEnabled.value==true && spotifyColour.value == false) || spotifyEnabled.value==false)",
				"index" : 4,
				"options" : 
				[
					{
						"label" : "Drumstep",
						"value" : "#F7218A"
					},
					{
						"label" : "House",
						"value" : "#F58D00"
					},
					{
						"label" : "Drum & Bass",
						"value" : "#FF0000"
					},
					{
						"label" : "Nu Disco/Indie Dance",
						"value" : "#1DAAB5"
					},
					{
						"label" : "Hard Dance/Hardcore",
						"value" : "#029700"
					},
					{
						"label" : "Dubstep",
						"value" : "#961EEA"
					},
					{
						"label" : "Electro",
						"value" : "#E7CD00"
					},
					{
						"label" : "Glitch Hop",
						"value" : "#0C9658"
					},
					{
						"label" : "Trance",
						"value" : "#007DE9"
					},
					{
						"label" : "Album Mix",
						"value" : "#FFFFFF"
					},
					{
						"label" : "Trap",
						"value" : "#8D0E28"
					},
					{
						"label" : "Misc (EDM, Trap, Bounce, etc)",
						"value" : "#C2C1C2"
					}
				],
				"order" : 104,
				"text" : "Colour Presets",
				"type" : "combo",
				"value" : "#F7218A"
			},
			"barColourPicker" : 
			{
				"condition" : "barCustomColour.value==true && ((spotifyEnabled.value==true && spotifyColour.value == false) || spotifyEnabled.value==false)",
				"index" : 5,
				"order" : 105,
				"text" : "Colour",
				"type" : "color",
				"value" : "1 1 1"
			},
			"barCustomColour" : 
			{
				"index" : 3,
				"order" : 103,
				"text" : "Custom Colour",
				"type" : "bool",
				"value" : false
			},
			"barOffsetX" : 
			{
				"editable" : true,
				"index" : 7,
				"max" : 1000,
				"min" : -1000,
				"order" : 107,
				"text" : "X Offset",
				"type" : "slider",
				"value" : 0
			},
			"barOffsetY" : 
			{
				"editable" : true,
				"index" : 8,
				"max" : 1000,
				"min" : -1000,
				"order" : 108,
				"text" : "Y Offset",
				"type" : "slider",
				"value" : 0
			},
			"barPadding" : 
			{
				"editable" : true,
				"index" : 2,
				"max" : 10,
				"min" : 0,
				"order" : 102,
				"text" : "Padding",
				"type" : "slider",
				"value" : 5
			},
			"barSettings" : 
			{
				"index" : 0,
				"order" : 100,
				"text" : "<h3>Bar Settings</h3>"
			},
			"barSmoothing" : 
			{
				"editable" : true,
				"index" : 6,
				"max" : 10,
				"min" : 1,
				"order" : 106,
				"text" : "Smoothing",
				"type" : "slider",
				"value" : 5
			},
			"barWidth" : 
			{
				"editable" : true,
				"index" : 1,
				"max" : 40,
				"min" : 1,
				"order" : 101,
				"text" : "Width",
				"type" : "slider",
				"value" : 20
			},
			"headerAlign" : 
			{
				"index" : 28,
				"options" : 
				[
					{
						"label" : "Left",
						"value" : "left"
					},
					{
						"label" : "Centre",
						"value" : "center"
					},
					{
						"label" : "Right",
						"value" : "right"
					}
				],
				"order" : 128,
				"text" : "Alignment",
				"type" : "combo",
				"value" : "left"
			},
			"headerColour" : 
			{
				"index" : 30,
				"order" : 130,
				"text" : "Colour",
				"type" : "color",
				"value" : "1 1 1"
			},
			"headerOffsetX" : 
			{
				"editable" : true,
				"index" : 31,
				"max" : 1000,
				"min" : -1000,
				"order" : 131,
				"text" : "X Offset",
				"type" : "slider",
				"value" : 0
			},
			"headerOffsetY" : 
			{
				"editable" : true,
				"index" : 32,
				"max" : 1000,
				"min" : -1000,
				"order" : 132,
				"text" : "Y Offset",
				"type" : "slider",
				"value" : 0
			},
			"headerSettings" : 
			{
				"index" : 26,
				"order" : 126,
				"text" : "<br/><br/><h3>Header Settings</h3>"
			},
			"headerSize" : 
			{
				"editable" : true,
				"index" : 29,
				"max" : 200,
				"min" : 50,
				"order" : 129,
				"text" : "Font Size",
				"type" : "slider",
				"value" : 100
			},
			"headerText" : 
			{
				"condition" : "spotifyEnabled.value==false",
				"index" : 27,
				"order" : 127,
				"text" : "Text",
				"type" : "textinput",
				"value" : "Header"
			},
			"logoBackground" : 
			{
				"condition" : "logoEnabled.value==true",
				"index" : 22,
				"order" : 122,
				"text" : "Background",
				"type" : "bool",
				"value" : true
			},
			"logoCustom" : 
			{
				"condition" : "logoEnabled.value==true",
				"index" : 20,
				"order" : 120,
				"text" : "Custom Logo",
				"type" : "bool",
				"value" : false
			},
			"logoEnabled" : 
			{
				"index" : 19,
				"order" : 119,
				"text" : "Enabled",
				"type" : "bool",
				"value" : true
			},
			"logoImage" : 
			{
				"condition" : "logoEnabled.value==true && logoCustom.value==true && ((spotifyEnabled.value==true && spotifyLogo.value == false) || spotifyEnabled.value==false)",
				"index" : 21,
				"order" : 121,
				"text" : "Source",
				"type" : "file"
			},
			"logoOffsetX" : 
			{
				"condition" : "logoEnabled.value==true",
				"editable" : true,
				"index" : 24,
				"max" : 1000,
				"min" : -1000,
				"order" : 124,
				"text" : "X Offset",
				"type" : "slider",
				"value" : 0
			},
			"logoOffsetY" : 
			{
				"condition" : "logoEnabled.value==true",
				"editable" : true,
				"index" : 25,
				"max" : 1000,
				"min" : -1000,
				"order" : 125,
				"text" : "Y Offset",
				"type" : "slider",
				"value" : 0
			},
			"logoScale" : 
			{
				"condition" : "logoEnabled.value==true",
				"editable" : true,
				"index" : 23,
				"max" : 3,
				"min" : 0.5,
				"order" : 123,
				"text" : "Scale",
				"type" : "slider",
				"value" : 1
			},
			"logoSettings" : 
			{
				"index" : 18,
				"order" : 118,
				"text" : "<br/><br/><h3>Logo Settings</h3>"
			},
			"particleAmount" : 
			{
				"condition" : "particlesEnabled.value==true",
				"editable" : true,
				"index" : 12,
				"max" : 400,
				"min" : 1,
				"order" : 112,
				"text" : "Amount",
				"type" : "slider",
				"value" : 50
			},
			"particleDirection" : 
			{
				"condition" : "particlesEnabled.value==true",
				"index" : 14,
				"options" : 
				[
					{
						"label" : "Left",
						"value" : "Left"
					},
					{
						"label" : "Right",
						"value" : "Right"
					}
				],
				"order" : 114,
				"text" : "Direction",
				"type" : "combo",
				"value" : "Right"
			},
			"particleSettings" : 
			{
				"index" : 9,
				"order" : 109,
				"text" : "<br/><br/><h3>Particle Settings</h3>"
			},
			"particleSpeed" : 
			{
				"condition" : "particlesEnabled.value==true",
				"editable" : true,
				"index" : 13,
				"max" : 10,
				"min" : 1,
				"order" : 113,
				"text" : "Speed",
				"type" : "slider",
				"value" : 2
			},
			"particlesEnabled" : 
			{
				"index" : 10,
				"order" : 110,
				"text" : "Enabled",
				"type" : "bool",
				"value" : true
			},
			"particlesReact" : 
			{
				"index" : 11,
				"order" : 111,
				"text" : "Reactive",
				"type" : "bool",
				"value" : true
			},
			"schemecolor" : 
			{
				"order" : 0,
				"text" : "ui_browse_properties_scheme_color",
				"type" : "color",
				"value" : "0 0 0"
			},
			"spotifyColour" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyLogo.value==true",
				"index" : 44,
				"order" : 144,
				"text" : "Sync Colour",
				"type" : "bool",
				"value" : false
			},
			"spotifyEnabled" : 
			{
				"index" : 41,
				"order" : 141,
				"text" : "Enabled",
				"type" : "bool",
				"value" : false
			},
			"spotifyLogo" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 43,
				"order" : 143,
				"text" : "Sync Logo",
				"type" : "bool",
				"value" : false
			},
			"spotifyProgress" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 50,
				"order" : 150,
				"text" : "Progress Bar",
				"type" : "bool",
				"value" : false
			},
			"spotifyProgressCustom" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyProgress.value==true",
				"index" : 51,
				"order" : 151,
				"text" : "Custom Size",
				"type" : "bool",
				"value" : false
			},
			"spotifyProgressHeight" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyProgress.value==true && spotifyProgressCustom.value==true",
				"editable" : true,
				"index" : 53,
				"max" : 100,
				"min" : 0.1,
				"order" : 153,
				"text" : "Height",
				"type" : "slider",
				"value" : 2
			},
			"spotifyProgressWidth" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyProgress.value==true && spotifyProgressCustom.value==true",
				"editable" : true,
				"index" : 52,
				"max" : 100,
				"min" : 0.1,
				"order" : 152,
				"text" : "Width",
				"type" : "slider",
				"value" : 50
			},
			"spotifyProgressX" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyProgress.value==true",
				"editable" : true,
				"index" : 54,
				"max" : 1000,
				"min" : -1000,
				"order" : 154,
				"text" : "X Offset",
				"type" : "slider",
				"value" : 0
			},
			"spotifyProgressY" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyProgress.value==true",
				"editable" : true,
				"index" : 55,
				"max" : 1000,
				"min" : -1000,
				"order" : 155,
				"text" : "Y Offset",
				"type" : "slider",
				"value" : 0
			},
			"spotifySettings" : 
			{
				"index" : 40,
				"order" : 140,
				"text" : "<br/><br/><h3>Spotify Settings</h3>"
			},
			"spotifyShorten" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 48,
				"order" : 148,
				"text" : "Shorten Titles",
				"type" : "bool",
				"value" : true
			},
			"spotifySwap" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 49,
				"order" : 149,
				"text" : "Swap Header Order",
				"type" : "bool",
				"value" : false
			},
			"spotifyToken" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 42,
				"order" : 142,
				"text" : "Refresh Token<br/><small>Check the workshop page to see a guide on how to generate a token.</small><br/><br/>",
				"type" : "textinput",
				"value" : ""
			},
			"spotifyUpdate" : 
			{
				"condition" : "spotifyEnabled.value==true",
				"index" : 47,
				"max" : 10,
				"min" : 2,
				"order" : 147,
				"text" : "Update Rate<br/><small>Delay between each update (seconds)</small>",
				"type" : "slider",
				"value" : 5
			},
			"spotifyVibrancy" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyLogo.value==true && spotifyColour.value==true && spotifyVibrant.value==true",
				"editable" : true,
				"index" : 46,
				"max" : 100,
				"min" : 0,
				"order" : 146,
				"text" : "Vibrancy",
				"type" : "slider",
				"value" : 50
			},
			"spotifyVibrant" : 
			{
				"condition" : "spotifyEnabled.value==true && spotifyLogo.value==true && spotifyColour.value==true",
				"index" : 45,
				"order" : 145,
				"text" : "Vibrant Colour",
				"type" : "bool",
				"value" : false
			},
			"subheaderAlign" : 
			{
				"index" : 35,
				"options" : 
				[
					{
						"label" : "Left",
						"value" : "left"
					},
					{
						"label" : "Centre",
						"value" : "center"
					},
					{
						"label" : "Right",
						"value" : "right"
					}
				],
				"order" : 135,
				"text" : "Alignment",
				"type" : "combo",
				"value" : "left"
			},
			"subheaderColour" : 
			{
				"index" : 37,
				"order" : 137,
				"text" : "Colour",
				"type" : "color",
				"value" : "1 1 1"
			},
			"subheaderOffsetX" : 
			{
				"editable" : true,
				"index" : 38,
				"max" : 1000,
				"min" : -1000,
				"order" : 138,
				"text" : "X Offset",
				"type" : "slider",
				"value" : 0
			},
			"subheaderOffsetY" : 
			{
				"editable" : true,
				"index" : 39,
				"max" : 1000,
				"min" : -1000,
				"order" : 139,
				"text" : "Y Offset",
				"type" : "slider",
				"value" : 0
			},
			"subheaderSettings" : 
			{
				"index" : 33,
				"order" : 133,
				"text" : "<br/><br/><h3>Sub Header Settings</h3>"
			},
			"subheaderSize" : 
			{
				"editable" : true,
				"index" : 36,
				"max" : 200,
				"min" : 25,
				"order" : 136,
				"text" : "Font Size",
				"type" : "slider",
				"value" : 50
			},
			"subheaderText" : 
			{
				"condition" : "spotifyEnabled.value==false",
				"index" : 34,
				"order" : 134,
				"text" : "Text",
				"type" : "textinput",
				"value" : "Sub Header"
			}
		},
		"supportsaudioprocessing" : true
	},
	"preview" : "preview.gif",
	"ratingsex" : "none",
	"ratingviolence" : "none",
	"tags" : [ "Animal" ],
	"title" : "Monstercat Audio Visualizer (SPOTIFY SUPPORT)",
	"type" : "web",
	"version" : 14,
	"visibility" : "public",
	"workshopid" : "1278092907",
	"workshopurl" : "steam://url/CommunityFilePage/1278092907"
}