--// 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)