// see Hv_MovingPlatform_AudioLib.Parameter for definitions
    public float GetFloatParameter(Hv_MovingPlatform_AudioLib.Parameter param)
    {
        switch (param)
        {
        case Parameter.Metro: return(metro);

        case Parameter.Pitch1: return(pitch1);

        case Parameter.Pitch2: return(pitch2);

        case Parameter.Pitch3: return(pitch3);

        case Parameter.Tempo: return(tempo);

        default: return(0.0f);
        }
    }
    public void SetFloatParameter(Hv_MovingPlatform_AudioLib.Parameter param, float x)
    {
        switch (param)
        {
        case Parameter.Metro: {
            x     = Mathf.Clamp(x, 0.0f, 1.0f);
            metro = x;
            break;
        }

        case Parameter.Pitch1: {
            x      = Mathf.Clamp(x, 0.0f, 127.0f);
            pitch1 = x;
            break;
        }

        case Parameter.Pitch2: {
            x      = Mathf.Clamp(x, 0.0f, 127.0f);
            pitch2 = x;
            break;
        }

        case Parameter.Pitch3: {
            x      = Mathf.Clamp(x, 0.0f, 127.0f);
            pitch3 = x;
            break;
        }

        case Parameter.Tempo: {
            x     = Mathf.Clamp(x, 0.0f, 10000.0f);
            tempo = x;
            break;
        }

        default: return;
        }
        if (IsInstantiated())
        {
            _context.SendFloatToReceiver((uint)param, x);
        }
    }