Continuous Background Music Across Scenes

I noticed a discussion regarding background music continuity across Unity scenes here:

Rimrook's solution is a great baseline, but our team wanted a single script solution that could be used on Audio Source objects across scenes.    So I updated the code to allow for new Audio Sources to provide new songs and volume.  

We noticed that, if new Audio Source objects were present with Play On Awake, Unity would start playing the new music on top of the old until the singleton detection finished, creating a brief audio glitch.   So we never set Play on Awake for background music Audio Sources.   The script manages this instead:

using UnityEngine;
using System.Collections;

public class MusicSingleton : MonoBehaviour 
    private static MusicSingleton instance = null;

    public static MusicSingleton Instance {
             get { return instance; }

    void Awake() 
        if (instance != null && instance != this) 
            if( != audio.clip)
       = audio.clip;
       = audio.volume;

        instance = this;
        audio.Play ();