- From: Chris Rogers <crogers@google.com>
- Date: Tue, 24 Apr 2012 13:06:50 -0700
- To: public-audio@w3.org
- Message-ID: <CA+EzO0nHWYsvDXDjG_T7qrw404veeCbGe2JgBci0ObGZSZ98PA@mail.gmail.com>
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:07:19 UTC