// see Hv_Playlist_AudioLib.Parameter for definitions
    public float GetFloatParameter(Hv_Playlist_AudioLib.Parameter param)
    {
        switch (param)
        {
        case Parameter.Track01length: return(track01length);

        case Parameter.Track01vol: return(track01vol);

        case Parameter.Track02length: return(track02length);

        case Parameter.Track02vol: return(track02vol);

        case Parameter.Track03length: return(track03length);

        case Parameter.Track03vol: return(track03vol);

        case Parameter.Track04length: return(track04length);

        case Parameter.Track04vol: return(track04vol);

        case Parameter.Track05length: return(track05length);

        case Parameter.Track05vol: return(track05vol);

        case Parameter.Track06length: return(track06length);

        case Parameter.Track06vol: return(track06vol);

        case Parameter.Track07length: return(track07length);

        case Parameter.Track07vol: return(track07vol);

        case Parameter.Track08length: return(track08length);

        case Parameter.Track08vol: return(track08vol);

        case Parameter.Track09length: return(track09length);

        case Parameter.Track09vol: return(track09vol);

        case Parameter.Track10length: return(track10length);

        case Parameter.Track10vol: return(track10vol);

        default: return(0.0f);
        }
    }
    public void SetFloatParameter(Hv_Playlist_AudioLib.Parameter param, float x)
    {
        switch (param)
        {
        case Parameter.Track01length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track01length = x;
            break;
        }

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

        case Parameter.Track02length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track02length = x;
            break;
        }

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

        case Parameter.Track03length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track03length = x;
            break;
        }

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

        case Parameter.Track04length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track04length = x;
            break;
        }

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

        case Parameter.Track05length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track05length = x;
            break;
        }

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

        case Parameter.Track06length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track06length = x;
            break;
        }

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

        case Parameter.Track07length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track07length = x;
            break;
        }

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

        case Parameter.Track08length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track08length = x;
            break;
        }

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

        case Parameter.Track09length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track09length = x;
            break;
        }

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

        case Parameter.Track10length: {
            x             = Mathf.Clamp(x, 0.0f, 4410000.0f);
            track10length = x;
            break;
        }

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

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