local Brick = workspace:WaitForChild("brick")
local Start = Brick.CFrame - Vector3.new(0,Brick.Size.Y/2,0)

local L = 0.75 -- Lerp constant
-- 1: part won't resize at all
-- 0: part will resize instantly
-- inbetween: smoothed resizing (based on how low the number)
-- Warning: too high number --> might look delayed

local Sound

for k,v in pairs(workspace:GetChildren()) do
    if v:IsA("Sound") then
        Sound = v break
    end
end

workspace.ChildAdded:connect(function(ch)
    if ch:IsA("Sound") then Sound = ch end
end)

local Y = 1
while wait() do
    local y = 1
    if Sound and Sound.Parent then
        if Sound.PlaybackLoudness > 1 then
            y = Sound.PlaybackLoudness/100*4
            y = y < 1 and 1 or y > 20 and 40 or y
        end
    end Y = Y*L + y*(1-L)
    Brick.Size = Vector3.new(20, Y, 20)
    Brick.CFrame = Start + Vector3.new(0,Y/2,0)

5 comments

1

Please elaborate, what's the problem, where does it not work? What is the result you're looking for?

0

The script only works with 1 brick that is name "bricks" and won't affect others that have the same name I was wondering if their was a way to fix that problem

0

Because you are only asking the script to look for one 'brick'

0

Then where do i go to change that ^ or answer the question