This is just a playlist script with a fov script with it, and I've done changes so that the event/function for the fov script to close after the song ends, but now multiple songs play at the same time.

local musicFolder = workspace.Songs
local availableMusic = musicFolder:GetChildren() -- all the songs in a folder
local currentTrack = game.ReplicatedStorage.CurrentTrack 
local CurrentCamera = workspace.CurrentCamera

while true do 
	local randomTrack = availableMusic[math.random(1,#availableMusic)]

	currentTrack.Value = "..." -- displays the song playing in a music player gui

	wait(2)

	randomTrack:Play()

local connection
	connection = game:GetService("RunService").RenderStepped:connect(function()
		local ScreenShakeSettings = {
			CameraMinFOV = 70,
			CameraMaxFOV = 80,
			CameraMaxVolume = 1500
		}


		game:GetService("RunService").RenderStepped:connect(function()
			local CurrentLoudness = randomTrack.PlaybackLoudness
			local FOV = ScreenShakeSettings.CameraMinFOV + (ScreenShakeSettings.CameraMaxFOV - ScreenShakeSettings.CameraMinFOV) * (CurrentLoudness / ScreenShakeSettings.CameraMaxVolume)
			if FOV > 0 and FOV < 130 then
				CurrentCamera.FieldOfView = FOV
			end
		end)
		
	currentTrack.Value = randomTrack.Name 

	randomTrack.Ended:Wait()
	
	connection:Disconnect()
	
	end)
end