Cloned sound is reverby and robotic

I’m working on a gun system, and i’m cloning the sound everytime i shoot so that the audio doesn’t cut off, but i’ve noticed that my sound is reverby and robotic sounding whenever I play the cloned version.

I’ve tested the sound without cloning it and it sounds fine. Also it seems like when I’m cloning it I have to manually set the parent otherwise it has no parent instead of having the same parent as the original.

Here’s my code:

function FirearmClient:PlaySound(soundInstance)
	local newSound = soundInstance:Clone()
	newSound.Parent = soundInstance.Parent
	newSound.PlaybackSpeed = Random.new():NextNumber(0.8, 1.2)
	newSound:Play()
	Debris:AddItem(newSound, newSound.TimeLength)
end

Edit: I’ve tried adding a task.wait() inbetween setting the parent and playing the audio, and it seems to have worked however this isn’t the solution i’m looking for as I want to avoid task.wait() if I can. I’ve tried newSound.Loaded:Wait() but then my whole system just doesn’t work for some reason.