// see Hv_simple_square_synth_AudioLib.Parameter for definitions
    public float GetFloatParameter(Hv_simple_square_synth_AudioLib.Parameter param)
    {
        switch (param)
        {
        case Parameter.Freqcutoff: return(freqCutoff);

        case Parameter.Gain: return(gain);

        case Parameter.Oscfreq: return(oscFreq);

        case Parameter.Ringmodfreq: return(ringModFreq);

        case Parameter.Ringmodmultiplier: return(ringModMultiplier);

        default: return(0.0f);
        }
    }
    public void SetFloatParameter(Hv_simple_square_synth_AudioLib.Parameter param, float x)
    {
        switch (param)
        {
        case Parameter.Freqcutoff: {
            x          = Mathf.Clamp(x, 0.0f, 20000.0f);
            freqCutoff = x;
            break;
        }

        case Parameter.Gain: {
            x    = Mathf.Clamp(x, 0.0f, 1.0f);
            gain = x;
            break;
        }

        case Parameter.Oscfreq: {
            x       = Mathf.Clamp(x, 0.0f, 20000.0f);
            oscFreq = x;
            break;
        }

        case Parameter.Ringmodfreq: {
            x           = Mathf.Clamp(x, 0.0f, 20000.0f);
            ringModFreq = x;
            break;
        }

        case Parameter.Ringmodmultiplier: {
            x = Mathf.Clamp(x, 0.0f, 1.0f);
            ringModMultiplier = x;
            break;
        }

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