Skip to content

fix: render queue event resolution - #1207

Open
closetcaiman wants to merge 1 commit into
mainfrom
fix/render-queue-event-resolution
Open

fix: render queue event resolution#1207
closetcaiman wants to merge 1 commit into
mainfrom
fix/render-queue-event-resolution

Conversation

@closetcaiman

@closetcaiman closetcaiman commented Jul 31, 2026

Copy link
Copy Markdown
Member

Closes #1191

⚠️ Breaking changes ⚠️

  • AudioParam.value setter will have stricter curve checks (literally the same as setValueAtTime) as per spec:

value, of type float
Setting this attribute has the effect of assigning the requested value to the [[current value]] slot, and calling the setValueAtTime() method with the current AudioContext’s currentTime and [[current value]]. Any exceptions that would be thrown by setValueAtTime() will also be thrown by setting this attribute.

Introduced changes

  • AudioParam.value setter now invokes setValueAtTime(value, context.currentTIme)

    • this solves the bug that occurred when an automation event with no startValue (like setTargetAtTime or RAMP events) was scheduled without an explicit setValueAtTime call. In result, such event's startValue fallbacked to defaultValue_ which then created audible jumps in pitch and sidebands in fft analysis.
    • Before:
    image
    • After:
    image

Other

Note

Identified issues with WEB IDL type checking. For example, currently number.isFinite() is rarely (if ever) called to check the passed values. Solving this may probably improve wpt tests results.

Checklist

  • Linked relevant issue
  • Updated relevant documentation
  • Added/Conducted relevant tests
  • Performed self-review of the code
  • Updated Web Audio API coverage
  • Added support for web
  • Updated old arch android spec file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repeated setTargetAtTime re-scheduling renders as FM warble / inharmonic sidebands on iOS (browsers render a smooth glide)

1 participant