Play audio clip over another audio source

Hi. I have a scene with two audio sources. One is for a constantly playing menu music. The other is for sound effects (AudioClips) that are supposed to play over the music. While the first AudioSource is playing, attempting to play an audio clip with the other source does not work. No errors occur, but the clip does not sound, even when the music is muted. To test the code for the sound effect AudioSource, I duplicated the object onto another scene that doesn’t have music playing and the sound effect worked. The music AudioSource does have code to prevent multiple instances when the scene is reloaded, but I feel like it might be conflicting and the preventing sound effects. There must be a better way to do this. Help is appreciated.

Scene hierarchy:

Script for AudioSource (menu music):

public class MusicClass : MonoBehaviour
    private static AudioSource audioSource;
    private static MusicClass Instance;

    // Allow only one instance of the audio source
    private void Awake() {
        if (Instance != null) {
        Instance = this;

        audioSource = GameObject.Find("AudioSource").GetComponent<AudioSource>();

    // Play audio
    public static void PlayMusic() {
        if (!audioSource.isPlaying) audioSource.Play();

    // Stop audio
    public static void StopMusic() {

Script for SfxSource (sound effects):

public class Sfx : MonoBehaviour
    public static AudioClip menuSelectClip;
    private static AudioSource audioSource;

    void Awake() {
        // load audio clips
        menuSelectClip = Resources.Load<AudioClip>("Sound/Menu_Select");

        audioSource = GameObject.Find("SfxSource").GetComponent<AudioSource>();

    // Play sound effect from resource name
    public static void PlaySfx(string sfxName) {
        Debug.Log("going to play sfx");
        switch (sfxName) {
            case "MenuSelect":
                audioSource.PlayOneShot(menuSelectClip, 1.0f);

I fixed it by applying different tags to both audio sources and making a generic DontDestroyObject script to prevent either one of them from being destroyed or duplicated if the scene changes or reloads.