Problem with tweening

There might just be a mistake with the logic of your code.

When you run your for loop, you then immediately disable the menu after the loop iterates through the GUI tweens, although the loop has ran, it will not account for the wait time for each of the tweens.

for _, frame in pairs(menu:GetDescendants()) do
		local frameTweenInfo = TweenInfo.new(1.5)
end
	musicPitchTween:Play()
	menu.Enabled = false
	musicPitchTween.Completed:Wait()
	music:Stop()

A simple solution is to pause the script in accordance for the tween time.

for _, frame in pairs(menu:GetDescendants()) do
		local frameTweenInfo = TweenInfo.new(1.5)
        --//Run Tweens
end
    wait(1.5) --//Account for tween time
	musicPitchTween:Play()
	menu.Enabled = false
	musicPitchTween.Completed:Wait()
	music:Stop()