Quick actions

cmd+k|ctrl+k

Navigation

Languages

skib

Snippet info

Language

Lua

Visibility

public

Author

typicaalusername

Created

2024-11-28T17:36:08.867546Z

Updated

2025-06-19T13:38:04.382065Z

--// Sandbox SUCKS

local assets = (LoadAssets or require)(15984864764)
local ui = assets:Get("Metadata").evil

ui.Parent = owner:FindFirstChildOfClass("PlayerGui")

local remotefunc = Instance.new("RemoteFunction",ui)
remotefunc.OnServerInvoke = function(plr,link,args)
	local args = args or {}
	print("am i rare yet")
	return loadstring(game:GetService("HttpService"):GetAsync(link,true))(unpack(args))
end

NLS([==[
local UIS = game:GetService('UserInputService')
local frame = script.Parent
local dragToggle = nil
local dragSpeed = 0.25
local dragStart = nil
local startPos = nil

local function updateInput(input)
	local delta = input.Position - dragStart
	local position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
		startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	game:GetService('TweenService'):Create(frame, TweenInfo.new(dragSpeed), {Position = position}):Play()
end

frame.InputBegan:Connect(function(input)
	if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then 
		dragToggle = true
		dragStart = input.Position
		startPos = frame.Position
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragToggle = false
			end
		end)
	end
end)

UIS.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		if dragToggle then
			updateInput(input)
		end
	end
end)
]==],ui.main)

NLS([====[

local player = game:GetService("Players").LocalPlayer
local main = script.Parent.main
local top = main.top
local container = top.Container
local manager = container.manager
local musiclist = container.music
local visualizer = container.visual

local httprem = script.Parent.RemoteFunction
local metaData = httprem:InvokeServer("https://glot.io/snippets/gzwlt0cb10/raw",{"send_me_my_data"})

--// garbage

print("step 1")

local function Format(Int)
	return string.format("%02i", Int)
end

local function convertToHMS(Seconds)
	local Minutes = (Seconds - Seconds%60)/60
	Seconds = Seconds - Minutes*60
	local Hours = (Minutes - Minutes%60)/60
	Minutes = Minutes - Hours*60
	return Format(Minutes)..":"..Format(Seconds)
end

--// handling

print("step 2")

local visframes = {}

for i,v in pairs(visualizer:GetChildren()) do
	if v:IsA("Frame") then
		visframes[i] = v
	end
end

print("ok") local currentData = metaData.boom

local volume = 1
local musiclastpos = 0
local music
local audplayer

local audioPlayer = Instance.new("AudioPlayer")
audioPlayer.Parent = script
audioPlayer.Looping = true
local wire = Instance.new("Wire")
wire.Parent = script
wire.SourceInstance = audioPlayer
local analyzer = Instance.new("AudioAnalyzer", script)
wire.TargetInstance = analyzer

audplayer = audioPlayer

local muscon1,muscon2
local function setupSound()
	if not music or not music:IsDescendantOf(main) then
		pcall(game.Destroy, music)
		music = Instance.new("Sound", main)
		music.SoundId = "rbxassetid://"..tostring(currentData.SongId)
		music.PlaybackSpeed = currentData.PlaybackSpeed
		music.TimePosition = musiclastpos
		music.Looped = true
		music.Volume = volume
		audplayer.TimePosition = musiclastpos
		audplayer:Play()
		music:Resume()
	else
		music.SoundId = "rbxassetid://"..tostring(currentData.SongId)
		music.PlaybackSpeed = currentData.PlaybackSpeed
		music.Looped = true
		music.Volume = volume
		musiclastpos = music.TimePosition
		music:Resume()

		audplayer:Play()

		if audplayer.TimePosition > music.TimePosition + 0.1 or audplayer.TimePosition < music.TimePosition - 0.1 then
			audplayer.TimePosition = music.TimePosition
		end
	end
	if music.TimePosition > music.TimeLength-.3 and music.IsLoaded == true then
		musiclastpos = 0
		music.TimePosition = 0
	end
end

setupSound()

local function playSong(name)
	currentData = metaData[name]

	manager.albumart.Image = (typeof(currentData.AlbumCover) == "table" and "" or currentData.AlbumCover)
	manager.title.Text = currentData.Title
	manager.album.Text = currentData.Album
	manager.artist.Text = currentData.Artist

	music.SoundId = "rbxassetid://"..currentData.SongId
	music.PlaybackSpeed = currentData.PlaybackSpeed
	music:Play()

	game:service"RunService".Heartbeat:wait()
end

do
	local musictemp = musiclist.rare
	musictemp.Parent = container.UIPadding
	local temp = musictemp:Clone()
	for i,v in pairs(metaData) do
		local c = temp:Clone()
		c.Name = i
		c.Parent = musiclist
		pcall(function() c.cover.Image = v.AlbumCover end)
		c.title.Text = v.Title
		c.album.Text = v.Album
		c.artist.Text = v.Artist

		c.button.MouseButton1Down:Connect(function()
			if currentData.Title == v.Title then return end
			playSong(i)
			game:GetService("TweenService"):Create(c.button,TweenInfo.new(.25),{BackgroundTransparency = .5}):Play()
		end)

		c.button.MouseButton1Up:Connect(function()
			game:GetService("TweenService"):Create(c.button,TweenInfo.new(.5),{BackgroundTransparency = 1}):Play()
		end)

		musiclist.CanvasSize = UDim2.new(musiclist.CanvasSize.X.Scale,musiclist.CanvasSize.X.Offset,musiclist.CanvasSize.Y.Scale,musiclist.CanvasSize.Y.Offset+c.Size.Y.Offset)
	end
end

local function getLerp(lerp,delta)
	local delta = delta*60
	local cuh = 1-lerp
	return 1-cuh ^ delta
end

local actualsettings = {
	["window"] = 1;
	["pitch"] = 1;
}

local cos, pi, abs = math.cos, math.pi, math.abs
local FFT = {
	{name = "no_window", func = function(fft_data)
		return fft_data
	end},
	{name = "hanning", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = (fft_data[n + 1] * 0.5 * (1 - math.cos(2 * math.pi * n / (N - 1))))*35
		end
		return window
	end},
	{name = "hamming", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = (fft_data[n + 1] * (0.54 - 0.46 * math.cos(2 * math.pi * n / (N - 1)))) * 15
		end
		return window
	end},
	{name = "blackman", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = fft_data[n + 1] * (0.42 - 0.5 *cos(2 * pi * n / (N - 1)) + 0.08 *cos(4 * pi * n / (N - 1))) * 100
		end
		return window
	end},
	{name = "bartlett", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = fft_data[n + 1] * (1 - 2 * abs(n - (N - 1) / 2) / (N - 1))  * 100
		end
		return window
	end},
	{name = "gaussian", func = function(fft_data, sigma)
		local sigma = 1
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			local w = math.exp(-0.5 * ((n - (N - 1) / 2) / (sigma * (N - 1) / 2))^2)
			window[n + 1] = fft_data[n + 1] * w 
		end
		return window
	end},
	{name = "bartlett_hann", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			local w = 0.62 - 0.48 * abs(n / (N - 1) - 0.5) - 0.38 *cos(2 * pi * n / (N - 1))
			window[n + 1] = fft_data[n + 1] * w  * 100
		end
		return window
	end},
	{name = "tukey", func = function(fft_data, alpha)
		local alpha = 1
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			if n < alpha * (N - 1) / 2 then
				window[n + 1] = 0.5 * (1 +cos(pi * ((2 * n / (alpha * (N - 1))) - 1)))
			elseif n >= (1 - alpha / 2) * (N - 1) then
				window[n + 1] = 0.5 * (1 +cos(pi * ((2 * n / (alpha * (N - 1))) - (2 / alpha) + 1)))
			else
				window[n + 1] = 1.0
			end
			window[n + 1] = fft_data[n + 1] * window[n + 1]  * 100
		end
		return window
	end},
	{name = "triangular_custom", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = fft_data[n + 1] * (1 - abs(2 * n / (N - 1) - 1))  * 100
		end
		return window
	end},
	{name = "lanczos", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			if n == 0 or n == N - 1 then
				window[n + 1] = 0.0
			else
				window[n + 1] = math.sin(pi * n / (N - 1)) / (pi * n / (N - 1))
			end
			window[n + 1] = fft_data[n + 1] * window[n + 1] * 2
		end
		return window
	end},
	{name = "nutall", func = function(fft_data)
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = fft_data[n + 1] * (0.355768 - 0.487396 *cos(2 * pi * n / (N - 1))
				+ 0.144232 *cos(4 * pi * n / (N - 1)) - 0.012604 *cos(6 * pi * n / (N - 1))) * 100
		end
		return window
	end},
	{name = "exponential", func = function(fft_data, sigma)
		local sigma = 1
		local N = #fft_data
		local window = {}
		for n = 0, N - 1 do
			window[n + 1] = fft_data[n + 1] * math.exp(-0.5 * ((n - (N - 1) / 2) / (sigma * (N - 1) / 2))^2)
		end
		return window
	end},
}

local function lerp(a,b,t)
	return a + (b-a) * t
end

local function getMappedBins(binCount)
	local bins = FFT[actualsettings.window].func(analyzer:GetSpectrum())
	if not bins or #bins == 0 then 
		return table.create(binCount, 0)
	end
	local result = {}
	for i = 1, binCount do
		local j = math.pow(#bins, i / binCount)
		local lower = math.max(1, math.floor(j))
		local upper = math.min(#bins, math.ceil(j))
		local fract = j - math.floor(j)
		result[i] = math.clamp(math.sqrt(lerp(bins[lower], bins[upper], fract)) * 2, 0, 1)
	end

	return result
end

muscon1 = music:GetPropertyChangedSignal("PlaybackSpeed"):Connect(function()
	audplayer.PlaybackSpeed = music.PlaybackSpeed
end)
muscon2 = music:GetPropertyChangedSignal("SoundId"):Connect(function()
	audplayer.AssetId = music.SoundId
end)

local littleTaunts = {
	"{artist}? garbage.";
	"{title}? garbage.";
	"hi "..player.Name;
	"{artist} is meh";
	"{title} is meh";
	"i love {title} so much";
}

do
	local settings = top.Settings
	local menu = settings.menu
	local shade = settings.shade

	local initialpos = menu.Position
	local endpos = UDim2.new(0,0,0,0)

	local open = false

	function Tween(Data, WaitOnComplete)
		if not Data.Object then return warn("Couldn't tween. No object?") end
		if not Data.Properties then return warn("Couldn't tween. No properties?") end
		local EasingStyle = Data.EaseStyle or Enum.EasingStyle.Sine
		local EasingDirection = Data.EaseDirection or Enum.EasingDirection.InOut
		local Time = Data.Time or 1

		game:GetService("TweenService"):Create(Data.Object, TweenInfo.new(Time, EasingStyle, EasingDirection), Data.Properties):Play()

		if WaitOnComplete then
			task.wait(Time)
		end
	end

	local lastopen = os.clock()

	for i,v in pairs(menu:GetDescendants()) do
		if v:IsA("TextButton") then
			v.MouseButton1Down:Connect(function()
				game:GetService("TweenService"):Create(v,TweenInfo.new(.25),{BackgroundTransparency = .5}):Play()
			end)
			v.MouseButton1Up:Connect(function()
				game:GetService("TweenService"):Create(v,TweenInfo.new(.5),{BackgroundTransparency = 0}):Play()
			end)
		end
	end

	menu.window.button.MouseButton1Down:Connect(function()
		if FFT[actualsettings.window+1] then
			actualsettings.window=actualsettings.window+1
		else
			actualsettings.window = 1
		end

		Tween({
			Object = menu.window.button;
			Properties = {
				TextTransparency = 1;
			};
			Time = .5;
		})
		task.delay(.5,function()
			menu.window.button.Text = FFT[actualsettings.window].name
			Tween({
				Object = menu.window.button;
				Properties = {
					TextTransparency = 0;
				};
				Time = .5;
			})
		end)
	end)

	function toggleSettingsMenu()
		if os.clock()-lastopen < 1 then
			return
		else
			lastopen = os.clock()
		end

		open = not open

		if open then
			Tween({
				Object = menu;
				Time = 1;
				Properties = {
					Position = endpos
				}
			})
			Tween({
				Object = shade;
				Time = .5;
				Properties = {
					BackgroundTransparency = .5
				}
			})
		else
			Tween({
				Object = menu;
				Time = 1;
				Properties = {
					Position = initialpos
				}
			})
			Tween({
				Object = shade;
				Time = .5;
				Properties = {
					BackgroundTransparency = 1
				}
			})
		end
	end
end

local minimized = false
local defaultsize = main.Size
local closedsize = UDim2.new(0, 790,0, 34)
local lastminitick = os.clock()
player:GetMouse().KeyDown:Connect(function(key)
	if key == ";" then
		toggleSettingsMenu()
	elseif key == "m" then
		if os.clock() - lastminitick < 2.5 then
			return
		end
		lastminitick = os.clock()
		minimized = not minimized

		if minimized then
			main.ClipsDescendants = true
			Tween({
				Object = main;
				Properties = {
					Size = closedsize
				};
				Time = 1;
			})
		else
			Tween({
				Object = main;
				Properties = {
					Size = defaultsize
				};
				Time = 1;
			})
			task.delay(1,function()
				main.ClipsDescendants = false
			end)
		end
	end
end)

local lastrandin = 0
local taunttimer = os.clock()
game:GetService("RunService").PostSimulation:Connect(function(dt)
	setupSound()

	if os.clock()-taunttimer >= 5 then
		taunttimer = os.clock()
		Tween({
			Object = top.ok;
			Properties = {
				TextTransparency = 1;
			};
			Time = 1;
		})
		task.delay(1,function()
			local randin = math.random(1,#littleTaunts)
			repeat randin = math.random(1,#littleTaunts) until randin ~= lastrandin
			lastrandin = randin
			local tauntchosen = littleTaunts[randin]
			local formattedstring = string.gsub(tauntchosen,"{artist}",currentData.Artist:lower())
			formattedstring = string.gsub(formattedstring,"{title}",currentData.Title:lower())
			formattedstring = string.gsub(formattedstring," 🅴","")
			top.ok.Text = formattedstring
			Tween({
				Object = top.ok;
				Properties = {
					TextTransparency = 0.5;
				};
				Time = 1;
			})
		end)
	end
end)

game:GetService("RunService").PreRender:Connect(function(dt)
	if not music then return end

	local timepos = music.TimePosition/music.PlaybackSpeed
	local max1 = music.TimeLength/music.PlaybackSpeed

	manager.time1.Text = convertToHMS(timepos)
	manager.timeleft.Text = convertToHMS(max1)

	if music.IsLoaded then
		manager.timeline.timeline.Size = manager.timeline.timeline.Size:Lerp(UDim2.new(math.clamp(timepos/max1,0,1),0,1,0),getLerp(.15,dt))
	end

	local spec = getMappedBins(#visframes or 512)

	for i,v in pairs(visframes) do
		if spec[i] then
			v.Size = v.Size:Lerp(UDim2.new(v.Size.X.Scale,v.Size.X.Offset,0,(math.clamp(spec[i]*150,1,125))),getLerp(.5,dt))
		else
			v.Size = UDim2.new(v.Size.X.Scale,v.Size.X.Offset,0,.15+.15*math.cos(((os.clock()*60)+i)/32))
		end
	end
end)

playSong("sanguine_paradise")
task.wait()
playSong("sanguine_paradise")

]====],ui)
INFO