Sound is Delayed

if information.Submitted.Value then return end
        for _,v in pairs(speakers) do if v.Name == "Speaker" then v.SoundId = musicSound 
            if not v.IsLoaded then v.Loaded:Wait()
        end end end
        for i,v in pairs(speakers) do
    		if v.Name == "Speaker" then
    			
    		    information.Submitted.Value = true
    			v:Play()
            end
		end

It still echo’s but I think I have found a solution. I put all of the sounds TimePosition to zero while I was in game, in studio and it all sounded perfectly good. Maybe we can make it so it sets the TimePosition to the exact same?

Edit: I’ve tried, no luck :confused:

admittedly the code here is flawed, not exactly executing what i suggested

heres updated code:

for i,v in pairs(speakers) do
		if v.Name == "Speaker" then
				v.SoundId = "rbxassetid://"..music
				if not v.IsLoaded then
				v.Loaded:Wait()
					end
			
			
		end
end

for i,v in pairs(speakers) do
		
			if v.Name == "Speaker" then
				information.Submitted.Value = true
			    v:Play()
            end
end

the other code did not do the following: yield the sounds from playing until all have loaded, once all have loaded, play them

Why don’t you just put 1 large Part in around the entire area where speakers are, then just play the sound out of that Part?
Roblox recently made the change that sounds play from the extremities of a Part, not the center of it.

Have you checked to make sure that your AmbientReverb style in SoundService isn’t set to something weird? Should be “NoReverb” Or that you don’t have an EchoSoundModifier in your SoundService or possibly SoundGroup if you’re using one? You keep saying the sound is echoing and those are the only two things I can think of that would cause that. It looks like you are using some SoundEffects which could also be the cause, try disabling those to see if that helps if the other two things aren’t the cause.

It just seems a little unrealistic to place a massive block in the center and make it play from there. But I am curious on how the sound plays from a part works.

Nope, I have checked left right and center for that, it’s alright. The reason how I know this is that I have preset sounds in those speakers for other stuff with the exact same sound effects, and they do not create some weird echo as they are all synced perfectly.

I use it for the ocean waves sound in my steampunk place. 1 large transparent cancollide off Part anchored just above the Terrain water. I have a looped wave sound playing in it (no scripts) and if you move on the water it stays the same volume. If you climb up away from the water it gets quieter the farther you go up.
Very simple.

Thanks for the solution, really appreciate it.
Although this code didn’t work at first, I have made some adjust to make it work as intended but hey, a solution is solution.

Instead of putting :Play() in the same place has the remote function is being invoked, I have made a separate button that plays the sound but only when it has fully loaded as you have made it so it yields the thread. For some reason this works perfectly.

@Scottifly I liked what you said about putting a massive block above the building and just playing it from there, but it doesn’t have the same aesthetic as just putting sounds individually in parts. It just makes it feel more realistic.