How to destroy audio when looping back to main screen

Hi All

I have setup my game to have an AudioListner object on each scene. Helps with playing around with different tracks in different scenes.
For now I’ve just got 2 playing. Main menu then Game music (when starting the game. the main menu is removed) and continuing to the end with final screen and even lose screen playing through.
On the lose screen or end screen, I get routed to the main menu but the audio continues and the Main menu audio plays together.
I want the main menu to play only and the other game sound to die. How can I do this?

Current code:

public class AudioListener : MonoBehaviour
AudioSource audioSource;
void Start()
Scene currentScene = SceneManager.GetActiveScene();
string sceneName =;

    if (sceneName != "Main Menu")
    { DontDestroyOnLoad(this);
        audioSource = GetComponent<AudioSource>();
    { Destroy(this); }


I’ve seen some people use this singleton but it deletes the AudioLisener game object from my GameStart and I wont have my new track playing.

 public class MusicPlayer : MonoBehaviour
     private static MusicPlayer _instance ;
     void Awake()
         //if we don't have an [_instance] set yet
             _instance = this ;
         //otherwise, if we do, kill this thing
             Destroy(this.gameObject) ;
         DontDestroyOnLoad(this.gameObject) ;

You could use a single audiosource and swap the audio clip for the scenes.

//When another scene loads
audio.clip = sceneMusic;