According to https://webaudio.github.io/web-audio-api/#widl-AudioParam-value, setting the value directly via the setter should behave as if setValueAtTime were called.
Make it so.
But also note the spec issue: https://github.com/WebAudio/web-audio-api/issues/1296 which should clarify exactly what the effect is.
Note also that this might break existing use of the value setter because it might throw under some conditions where it didn't before. This can also change the behavior if there are any automations running at the time the setter is called.
Based on the statistics that have been gathered, there are (surprisingly!) very few calls to the setter. And therefore very few conflicts between the value setter happening when a setCurveAtTime automation running.
It should be pretty safe to make this change in time for M66. Too close to M65 to consider this change.
Comment 1 by rtoy@chromium.org
, Sep 13 2017