Contact emails
rt...@chromium.org, hong...@chromium.org
Spec
http://webaudio.github.io/web-audio-api/
http://webaudio.github.io/web-audio-api/#the-pannernode-interface
http://webaudio.github.io/web-audio-api/#AudioListener
Summary
Add automation methods to PannerNode to allow for smoother panning effects.
Motivation
In the current PannerNode, the position and orientation of the source (along with the position, forward, and up vectors of the AudioListener) are set using methods from the main thread. This doesn't allow for sample accurate timing of the changes. In addition, it is up to the developer to update these parameters often enough to produce a smooth effect.
To solve this issue, the individual 3D components of the position and orientation of the source (and the position, forward, and up vectors of the listener) are made available as AudioParams. This allows the developer to automate the motion of the source through space in a smooth fashion. These parameters are a-rate; that is, the values are updated every sample frame instead of update once per rendering quantum (128 frames).
The initial discussion for the need for a new panner node is WebAudio issue 368 and issue 372. The final conclusion is in issue 749
Interoperability and Compatibility Risk
As an official part of the spec, we believe all browsers will implement this. The change is backward compatible with existing uses of the PannerNode. The spec currently lists the existing methods (setPosition, and setOrientation) as deprecated because their effect can be easily achieved by setting the individual components of the corresponding vectors. We do not intend, here, to remove these methods. We will mark them as deprecated and add counters so we can monitor their usage.
Ongoing technical constraints
The PannerNode supports two panning types: "equalpower" and "HRTF". We will implement the methods appropriately for "equalpower". Due to the complexity of HRTF, we will not add a-rate support for the HRTF panner at this time, preferring to keep the existing k-rate (128 frame) update rate. We feel that the inherent smoothing in the HRTF panner will smooth out the changes and is not worth the approximate 20x increase in complexity.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
OWP launch tracking bug
Link to entry on the feature dashboard
https://www.chromestatus.com/features/5677186052784128
Requesting approval to ship?
Yes.
--
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 blink-dev+...@chromium.org.
LGTM2 to shipIn general we don't add deprecation warnings until we have some evidence that API usage is rare enough to make removal likely to avoid console spam and conditioning developers to ignore such warnings (and avoid ourselves falling into the trap of unrealistic hope for removal). These tokens are pretty generic, but maybe there's still some hope for some sort of quick httparchive search? If that suggests that usage is quite small (eg. <100 sites from the top 500k), I'd be fine with immediate deprecation without bothering with a proactive UMA counter. Alternately just add the UseCounter now and wait until there's some data to do an "intent to deprecate and remove" and generate the console warning.