# Faster PlaybackSpeed the closer a player is

I’m trying to figure out how to make a sound play faster the closer a player is.

``````local magu = (hrp.Position-player.Character.HumanoidRootPart.Position).magnitude
if magu <= 400 then
timeel = 1 + magu
sound.PlaybackSpeed = timeel
sound:Play()
end
``````

I know how far I am with the current formula but any ideas? I’ve had this issue before and used a pretty lame and inefficient trick to get by last time. I noticed the game Before the Dawn 2 has something like this, any ideas?

I guess a good way to do it would be lerping the playback speed. For example:

``````local baseSpeed = 1
local topSpeed = 5

game:GetService("RunService"):Connect(function()
local magu = (hrp.Position-player.Character.HumanoidRootPart.Position).magnitude

local percentageDistance = math.clamp( 1 - (magu - 400), 0, 1 )
sound.PlaybackSpeed = ( baseSpeed + ( topSpeed - baseSpeed )  * percentageDistance )
sound:Play()
end)
``````

the variables at the top are as follows:

• baseSpeed is the speed that the sound will be when the player is outside the range
• topSpeed is the speed that the sound will be when the player is at 0 distance from the target

the formula used for PlaybackSpeed is known as the lerp formula it is used to get a lerp a number between 2 given numbers in a linear fashion. The percentageDistance is how far we are away from the target in percentage.

2 Likes

Big brained, thanks I learned something new

1 Like