private void _loadParameters()
    {
        FMOD.MUSIC_ITERATOR it     = new FMOD.MUSIC_ITERATOR();
        FMOD.RESULT         result = FMOD.RESULT.OK;

        if (m_parameters != null || m_musicSystem == null)
        {
            return;
        }
        m_parameters = new List <FmodMusicParameter>();
        result       = m_musicSystem.getParameters(ref it, "");
        if (result == FMOD.RESULT.OK)
        {
            while (it.value.ToInt32() != 0)
            {
                FMOD.MUSIC_ENTITY  entity = FmodMusicEntityBuilder.getMusicEntity(it);
                FmodMusicParameter param  = new FmodMusicParameter(entity, this);

                m_parameters.Add(param);
            }
        }
        else
        {
            Debug.LogError("FMOD_Unity: Error while loading music parameters: " + FMOD.Error.String(result));
        }
    }
    private void _loadCues()
    {
        FMOD.MUSIC_ITERATOR it     = new FMOD.MUSIC_ITERATOR();
        FMOD.RESULT         result = FMOD.RESULT.OK;

        if (m_cues != null || m_musicSystem == null)
        {
            return;
        }
        m_cues = new List <FmodMusicCue>();
        result = m_musicSystem.getCues(ref it, "");         //TODO: crash here. bad it init ? bad filter ? NOPE, just that a project must be loaded first. At least one. We might have to check on that.
        if (result == FMOD.RESULT.OK)
        {
            while (it.value.ToInt32() != 0)
            {
                FMOD.MUSIC_ENTITY entity = FmodMusicEntityBuilder.getMusicEntity(it);
                FmodMusicCue      cue    = new FmodMusicCue(entity, this);

                m_cues.Add(cue);
            }
        }
        else
        {
            Debug.LogError("FMOD_Unity: Error while loading music cues: " + FMOD.Error.String(result));
        }
    }