// https://webaudio.github.io/web-audio-api/#enumdef-automationrate
enum AutomationRate {
    "a-rate",
    "k-rate"
};

// https://webaudio.github.io/web-audio-api/#AudioParam
[Exposed=Window]
interface AudioParam {
    attribute float value;
    attribute AutomationRate automationRate;
    readonly attribute float defaultValue;
    readonly attribute float minValue;
    readonly attribute float maxValue;
    AudioParam setValueAtTime(float value, double startTime);
    AudioParam linearRampToValueAtTime(float value, double endTime);
    AudioParam exponentialRampToValueAtTime(float value, double endTime);
    AudioParam setTargetAtTime(float target, double startTime, float timeConstant);
    AudioParam setValueCurveAtTime(sequence<float> values,
                                   double startTime,
                                   double duration);
    AudioParam cancelScheduledValues(double cancelTime);
    AudioParam cancelAndHoldAtTime(double cancelTime);
};
