/// <summary>
        /// On GUI, draws the base inspector and track controls
        /// </summary>
        public override void OnInspectorGUI()
        {
            _settingsSO     = (target as MMSoundManager).settingsSo;
            _mmSoundManager = target as MMSoundManager;

            if (_settingsSO != null)
            {
                _masterVolume = _settingsSO.GetTrackVolume(MMSoundManager.MMSoundManagerTracks.Master);
                _musicVolume  = _settingsSO.GetTrackVolume(MMSoundManager.MMSoundManagerTracks.Music);
                _sfxVolume    = _settingsSO.GetTrackVolume(MMSoundManager.MMSoundManagerTracks.Sfx);
                _uiVolume     = _settingsSO.GetTrackVolume(MMSoundManager.MMSoundManagerTracks.UI);
            }

            serializedObject.Update();
            DrawDefaultInspector();
            serializedObject.ApplyModifiedProperties();

            if (((_settingsSO != null) && _mmSoundManager.gameObject.activeInHierarchy))
            {
                DrawTrack("Master Track", MMSoundManager.Instance.settingsSo.Settings.MasterOn, MMSoundManager.MMSoundManagerTracks.Master, _masterColorMute, _masterColorUnmute, _masterColorPause, _masterColorStop, _masterColorPlay, _masterColorFree);
                DrawTrack("Music Track", MMSoundManager.Instance.settingsSo.Settings.MusicOn, MMSoundManager.MMSoundManagerTracks.Music, _musicColorMute, _musicColorUnmute, _musicColorPause, _musicColorStop, _musicColorPlay, _musicColorFree);
                DrawTrack("SFX Track", MMSoundManager.Instance.settingsSo.Settings.SfxOn, MMSoundManager.MMSoundManagerTracks.Sfx, _sfxColorMute, _sfxColorUnmute, _sfxColorPause, _sfxColorStop, _sfxColorPlay, _sfxColorFree);
                DrawTrack("UI Track", MMSoundManager.Instance.settingsSo.Settings.UIOn, MMSoundManager.MMSoundManagerTracks.UI, _uiColorMute, _uiColorUnmute, _uiColorPause, _uiColorStop, _uiColorPlay, _uiColorFree);
                DrawSaveLoadButtons();
            }
        }