Contact emails
[email protected], [email protected]

Explainer
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/OfflineAudioContext/explainer.md


Specification
https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontext-startrendering


Summary
This feature adds an incremental rendering mechanism to OfflineAudioContext so 
that the audio graph data can be incrementally processed rather than allocating 
the whole audio buffer up front. By incrementally delivering the data using 
data chunks, there is no need to have high memory requirements for the user's 
machine when processing high amounts of data.


Blink component
Blink>WebAudio


Web Feature ID
Missing feature


Motivation
The OfflineAudioContext API works well for rendering small audio graphs, but it 
does not scale for larger projects because it allocates the full graph's 
AudioBuffer up front. For example, rendering a 2-hour video composition project 
in clipchamp.com in an OfflineAudioContext would require an extremely large 
AudioBuffer allocation. The implication of this API is that a user's computer 
must have enough available memory to export the project even if the in-memory 
audio buffer will eventually be discarded after it is written to a file. In 
situations with limited hardware resources or low-powered devices, this 
limitation makes WebAudio unusable as an offline processor. If memory capacity 
is exceeded on a user's machine, then the processing will stop and the browser 
may terminate the tab/window leading to potential loss of data for the user and 
a poor user experience.


Initial public proposal
https://github.com/WebAudio/web-audio-api/issues/2445


TAG review
https://github.com/w3ctag/design-reviews/issues/1282


TAG review status
Pending


Goals for experimentation
None


Risks




Interoperability and Compatibility
Low risk. - This feature is additive, meaning that the current 
functionality/API is preserved. - Mozilla has actively participated in the spec 
discussion/writing and approved the already merged spec proposal. - Feature 
detection can be done by checking the existence of OfflineAudioContext.close()

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1456) 
Although not officially "positive" in their GitHub repo, Mozilla position 
should be positive. They were very active in the WG and also reviewed and 
approved the spec changes.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/724)

Web developers: Positive 
(https://github.com/WebAudio/web-audio-api/issues/2445) Developers from 
ClipChamp and Mediabunny participated in the spec discussions and support the 
feature.

Other signals:


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 risk. This is an additive feature to the OfflineAudioContext API.



Debuggability
No information provided


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes


Is this feature fully tested by web-platform-tests?
Yes
WPTs are being implemented in 
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-offlineaudiocontext-interface/:
 
https://wpt.fyi/results/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-incremental-rendering.html?label=experimental&label=master&aligned
 
https://wpt.fyi/results/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-incremental-rendering-data-integrity.html?label=experimental&label=master&aligned
 
https://wpt.fyi/results/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-close.html?label=experimental&label=master&aligned


Flag name on about://flags
N/A


Finch feature name
OfflineAudioContextIncrementalRendering


Rollout plan
Will ship enabled for all users


Requires code in //chrome?
False


Tracking bug
https://issues.chromium.org/issues/530596178


Measurement
We are going to use the following UseCounters to measure adoption: 
OfflineAudioContextStartRendering and OfflineAudioContextClose


Availability expectation
Feature is available only in Chromium browsers for the foreseeable future.


Adoption expectation
Feature is used by specific partner(s) to provide functionality within 12 
months of launch in Chrome.


Adoption plan
We are in contact with partners via internal channels and the W3C 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?
None.


Estimated milestones


Shipping on desktop 158

Shipping on Android 158

Shipping on WebView 158




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/pull/2675


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5109900936085504?gate=6495103520735232


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a908411.8ed5e303.29aee.0236.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/6ad165d2.a6e82b8f.2f63e0.0243.GAE%40google.com.

Reply via email to