public void SetFloatParameter(Hv_RandomWalk_AudioLib.Parameter param, float x)
    {
        switch (param)
        {
        case Parameter.A: {
            x = Mathf.Clamp(x, 0.0f, 100.0f);
            a = x;
            break;
        }

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

        case Parameter.Unity_state: {
            x           = Mathf.Clamp(x, 0.0f, 4.0f);
            unity_state = x;
            break;
        }

        default: return;
        }
        if (IsInstantiated())
        {
            _context.SendFloatToReceiver((uint)param, x);
        }
    }
    // see Hv_RandomWalk_AudioLib.Parameter for definitions
    public float GetFloatParameter(Hv_RandomWalk_AudioLib.Parameter param)
    {
        switch (param)
        {
        case Parameter.A: return(a);

        case Parameter.Tempo: return(tempo);

        case Parameter.Unity_state: return(unity_state);

        default: return(0.0f);
        }
    }