So basically, I've been making a game and I've added a script which adds multiple songs instead of one. So, when I test out the game, the music starts but they ALL start at once. Sound1 is located in the workspace, sound2 is inside sound1, sound 3 inside sound2 so on so forth, anyways, here's the script:
local sound1 = 2529519176
local sound2 = 500155118
local sound3 = 1930853637
local sound4 = 1468374269
local music = script.Parent
while true do
wait()
music.SoundId= "rbxassetid://"..sound1
music:Play()
music.Ended: wait()
music.SoundId= "rbxassetid://"..sound2
music:Play()
music.Ended: wait()
music.SoundId= "rbxassetid://"..sound3
music:Play()
music.Ended: wait()
music.SoundId= "rbxassetid://"..sound4
music:Play()
music.Ended: wait()
end

2 comments
Wait for the song to load using the event Loaded. You can use the wait method on the Loaded event for waiting until the song loads (Loaded fires when a SoundId loads).
^ Answered right there.