// see Hv_coreofinal_AudioLib.Parameter for definitions
    public float GetFloatParameter(Hv_coreofinal_AudioLib.Parameter param)
    {
        switch (param)
        {
        case Parameter.Atkvol: return(AtkVol);

        case Parameter.Atkt: return(Atkt);

        case Parameter.Decvol: return(DecVol);

        case Parameter.Dect: return(Dect);

        case Parameter.Hf1: return(HF1);

        case Parameter.Hf2: return(HF2);

        case Parameter.Hf3: return(HF3);

        case Parameter.Hf4: return(HF4);

        case Parameter.Hv1: return(HV1);

        case Parameter.Hv2: return(HV2);

        case Parameter.Hv3: return(HV3);

        case Parameter.Hv4: return(HV4);

        case Parameter.Masterclock: return(MasterClock);

        case Parameter.Oscfreq: return(OscFreq);

        case Parameter.Delaylevel: return(delayLevel);

        case Parameter.Delaytimeleft: return(delayTimeLeft);

        case Parameter.Delaytimeright: return(delayTimeRight);

        case Parameter.Distortioncrush: return(distortionCrush);

        case Parameter.Lowpassfreq: return(lowpassFreq);

        case Parameter.Mastervoiceonoff: return(masterVoiceOnOff);

        case Parameter.Mastervoicevolume: return(masterVoiceVolume);

        case Parameter.Objvar: return(objVar);

        default: return(0.0f);
        }
    }
    public void SetFloatParameter(Hv_coreofinal_AudioLib.Parameter param, float x)
    {
        switch (param)
        {
        case Parameter.Atkvol: {
            x      = Mathf.Clamp(x, 0.0f, 5.0f);
            AtkVol = x;
            break;
        }

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

        case Parameter.Decvol: {
            x      = Mathf.Clamp(x, 0.0f, 5.0f);
            DecVol = x;
            break;
        }

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

        case Parameter.Hf1: {
            x   = Mathf.Clamp(x, 0.0f, 25.0f);
            HF1 = x;
            break;
        }

        case Parameter.Hf2: {
            x   = Mathf.Clamp(x, 0.0f, 25.0f);
            HF2 = x;
            break;
        }

        case Parameter.Hf3: {
            x   = Mathf.Clamp(x, 0.0f, 25.0f);
            HF3 = x;
            break;
        }

        case Parameter.Hf4: {
            x   = Mathf.Clamp(x, 0.0f, 25.0f);
            HF4 = x;
            break;
        }

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

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

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

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

        case Parameter.Masterclock: {
            x           = Mathf.Clamp(x, 1000.0f, 100000.0f);
            MasterClock = x;
            break;
        }

        case Parameter.Oscfreq: {
            x       = Mathf.Clamp(x, 1.0f, 127.0f);
            OscFreq = x;
            break;
        }

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

        case Parameter.Delaytimeleft: {
            x             = Mathf.Clamp(x, 1.0f, 4000.0f);
            delayTimeLeft = x;
            break;
        }

        case Parameter.Delaytimeright: {
            x = Mathf.Clamp(x, 1.0f, 4000.0f);
            delayTimeRight = x;
            break;
        }

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

        case Parameter.Lowpassfreq: {
            x           = Mathf.Clamp(x, 30.0f, 18000.0f);
            lowpassFreq = x;
            break;
        }

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

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

        case Parameter.Objvar: {
            x      = Mathf.Clamp(x, 1.0f, 16.0f);
            objVar = x;
            break;
        }

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