/// <summary>
        /// Play current song.
        /// </summary>
        public void Play(SongFiles song)
        {
            if (!InitSynth())
            {
                return;
            }

            // Stop if playing another song
            Stop();

            // Import custom song
            AudioClip clip;

            if (isImported = SoundReplacement.TryImportSong(song, out clip))
            {
                Song             = song;
                audioSource.clip = clip;
                isLoading        = true;
                return;
            }

            // Load song data
            string filename = EnumToFilename(song);

            byte[] songData = LoadSong(filename);
            if (songData == null)
            {
                return;
            }

            // Create song
            MidiFile midiFile = new MidiFile(new MyMemoryFile(songData, filename));

            if (midiSequencer.LoadMidi(midiFile))
            {
                midiSequencer.Play();
                currentMidiName = filename;
                playEnabled     = true;
                IsPlaying       = true;
            }
        }