Contact emails [email protected], [email protected]
Specification https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-renderquantumsize Design docs No information provided https://github.com/WebAudio/web-audio-api/blob/main/explainer/user-selectable-render-size.md Summary Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This allows developers to customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the hint or passing "default", or request that the User-Agent select an optimal size by specifying "hardware". Blink component Blink>WebAudio Web Feature ID web-audio Motivation It is difficult and complex to write a web app when the audio processing block size does not match with the WebAudio render quantum size (128 sample-frames). Removing this restriction and making it customizable on AudioContext would enable easier development and more efficient audio processing. Initial public proposal No information provided TAG review No information provided TAG review status Issues addressed Origin Trial Name WebAudio Configurable Render Quantum Goals for experimentation Validate performance improvement gained by matching render quantum size to software buffer sizes when using a numeric renderSizeHint. Verify actual audio processing output is unchanged when using a numeric renderSizeHint. We have a primary partner for this Origin Trial, and we would like to see if the performance and ergonomics of the API satisfy this partner's need. This partner is not going to use the "hardware" hint, and we think that it is still valuable to conduct an Origin Trial to gather feedback on the rest of the API. Chromium Trial Name WebAudioConfigurableRenderQuantum Origin Trial documentation link https://webaudio.github.io/web-audio-api/#dom-audiocontextoptions-rendersizehint WebFeature UseCounter name kWebAudioRenderSizeHint Risks Interoperability and Compatibility Low. The feature is already specified. Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1407) A Firefox developer wrote the specification change (https://github.com/WebAudio/web-audio-api/pull/2469). WebKit: No signal (https://github.com/WebKit/standards-positions/issues/662) Web developers: Positive (https://github.com/WebAudio/web-audio-api/issues/1503) Developers have requested a way to increase the render quantum size, and are looking forward to the feature being implemented. Other signals: Ergonomics An identified use case of this feature is to match buffer sizes used by other Chromium audio APIs, in order to improve performance. Activation There is an ongoing privacy discussion about how to mitigate fingerprinting concerns around the "hardware" hint (https://github.com/WebAudio/web-audio-api/issues/2659). The "hardware" hint as implemented in Chromium currently will always return the default 128 render quantum size, which exposes no user information. This is allowed by the spec, which says "It is a hint that might not be honored." Security There is concern that a very low render quantum size could allow an AudioWorklet to create a high-resolution timer, but very high sample rates are already allowed and have a similar risk so the marginal change in security is probably low. WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? Low. The change is to ship a new API. Debuggability It may be worth exposing the render quantum size value in the DevTools WebAudio pane, similar to sample rate. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes All supported platforms have mechanisms to implement this feature. Is this feature fully tested by web-platform-tests? Yes https://wpt.fyi/results/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-rendersizehint.html https://wpt.fyi/results/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-rendersizehint.html Flag name on about://flags N/A (launch with --enable-features=WebAudioConfigurableRenderQuantum) Finch feature name WebAudioConfigurableRenderQuantum Rollout plan Will ship enabled for all users Requires code in //chrome? False Tracking bug https://crbug.com/40637820 Launch bug https://launch.corp.google.com/launch/4416924 Measurement UseCounters: WebAudioRenderSizeHint, WebAudioRenderQuantumSize Availability expectation We expect that Firefox will implement the feature independently at some point. Adoption expectation We expect that specific partners will use this functionality immediately upon its launch in Chrome. Adoption plan We are in communication with partners, and also in communication with Mozilla via the Audio Working Group. Non-OSS dependencies Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function? No. Estimated milestones Shipping on desktop 153 Origin trial desktop first 145 Origin trial desktop last 151 Origin trial extension 1 end milestone 151 Origin trial extension 2 end milestone 153 Origin trial extension 3 end milestone 152 DevTrial on desktop 145 Shipping on Android 153 Origin trial Android first 145 Origin trial Android last 151 Shipping on WebView 153 Origin trial WebView first 145 Origin trial WebView last 151 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (eg links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (eg, changing to naming or structure of the API in a non-backward-compatible way). https://github.com/WebAudio/web-audio-api/issues/2663 https://github.com/WebAudio/web-audio-api/issues/2664 Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5078190552907776?gate=5074255557165056 Links to previous Intent discussions Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/688d3254.2b0a0220.361edb.0299.GAE%40google.com Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BuAeqS%3DygCo2wPaf0Cfo%2B%2BdEoHGWx%2Byc4%2BfO84U%2B_5hQqOvYg%40mail.gmail.com Intent to Extend Experiment 1: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69dd7ab5.050a0220.c8e20.0171.GAE%40google.com Intent to Extend Experiment 2: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a5fe800.77f2aaf9.1be956.027f.GAE%40google.com Intent to Extend Experiment 3: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a3319c8.3af95f39.17d45c.005e.GAE%40google.com This intent message was generated by Chrome Platform Status. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a62356b.3e7ba578.2a5c5b.01f9.GAE%40google.com.
