Re: Updates to Web Audio API editor's draft

Great updates.  Put me down as one vote for putting .gain back on
AudioBufferSourceNode, as I (and some of the partners I've worked with,
like Fieldrunners) have found it useful there.  :)

-Chris

On Tue, Apr 24, 2012 at 1:06 PM, Chris Rogers <crogers@google.com> wrote:

> Hey folks, I've recently updated the editor's draft of the Web Audio API:
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
>
> With some changes addressing list feedback.
>
> For low-level details, the actual edits are here (please see all edits
> since re-basing from Thierry Michel):
> https://dvcs.w3.org/hg/audio/
>
> And here's my summary:
>
> * add AudioContext .activeSourceCount attribute
> * add AudioBufferSourceNode .playbackState attribute and state constants
>
> Taken together the .activeSourceCount and .playbackState attributes allow
> developers to dynamically monitor the number of active voices.  In a busy
> game there may be many dozens of sounds playing at any given moment, and
> the exact number is constantly changing.  Based on this information about
> the number of voices,  developers can choose to drop older voices.
>
> * createBuffer() methods can throw exceptions
>
> If it's passed illegal arguments...
>
> * add AudioContext method createMediaElementSource()
>
> Implemented in Chrome for a couple months.  This method creates a
> MediaElementAudioSourceNode from an <audio> or <video> element.
>
> * update AudioContext methods createJavaScriptNode() (clean up description
> of parameters)
>
> Previous description was confusing.
>
> * update AudioContext method createChannelSplitter() (add numberOfOutputs
> parameter)
> * update AudioContext method createChannelMerger() (add numberOfInputs
> parameter)
> * update AudioChannelMerger section describing numberOfOutputs (defaults
> to 6 but settable in constructor)
> * update AudioChannelSplitter section describing numberOfInputs (defaults
> to 6 but settable in constructor)
>
> Address list feedback about allowing the developer to choose the numbers
> of outputs and inputs for splitters and mergers.
>
> * update description of out-of-bounds AudioParam values (exception will
> not be thrown)
>
> Since parameters such as gain can be effectively un-bounded.
>
> * remove AudioBuffer .gain attribute
> * remove AudioBufferSourceNode .gain attribute
> * remove AudioListener .gain attribute
>
> We may need to re-visit the removal of these gain attributes from the API,
> since I've found several pages out in the wild using them.  They're not
> harmful attributes, just ones I felt could be cleaned up (removed) since
> AudioGainNode can be used instead.  We may need to choose a deprectation
> path, or simply keep them.
>
> * RealtimeAnalyserNode no longer requires its output be connected to
> anything
>
> This was in response to list feedback where it was felt to be unnecessary
> to have to connect the output of an analyser to anything, since its purpose
> is normally just to "inspect" the audio signal.
>
> * add note in Spatialization sections about potential to get arbitrary
> convolution matrixing
>
> Effectively arbitrary convolution matrixing can be used for rich spatial
> effects.
>
> * Add Oscillator and WaveTable
>
> This was in response to list feedback.  People found the lack of
> oscillator support surprising, since it's an elementary building-block of
> synthesis.
>
> * Define default values for optional arguments in createJavaScriptNode(),
> createChannelSplitter(), createChannelMerger()
> * Define default filter type for BiquadFilterNode as LOWPASS
>
> This was just a clarification of default filter type.
>
> * Cleanup AudioNode connect() and disconnect() method descriptions.
>
> API same - update to more modern IDL
>
> * Add AudioNode connect() to AudioParam method.
>
> Allows audio-rate signals to control AudioParams
>

Received on Tuesday, 24 April 2012 20:20:53 UTC