Bug 17375: MixerGainStructure should be marked as informative
authorcrogers
Fri, 05 Oct 2012 15:40:57 -0700
changeset 175 49742b503611
parent 174 2246b4813c5a
child 176 c02492d0a62b
Bug 17375: MixerGainStructure should be marked as informative
webaudio/specification.html
--- a/webaudio/specification.html	Fri Oct 05 14:29:20 2012 -0700
+++ b/webaudio/specification.html	Fri Oct 05 15:40:57 2012 -0700
@@ -1026,7 +1026,30 @@
 href="#AudioDestinationNode-section"><code>AudioDestinationNode</code></a> has
 one input and no outputs and represents the final destination to the audio
 hardware. Most processing nodes such as filters will have one input and one
-output. </p>
+output.  Each type of <code>AudioNode</code> differs in the details of how it processes or synthesizes audio.  But, in general, <code>AudioNodes</code>
+will process its inputs (if it has any), and generate audio for its outputs (if it has any).
+ </p>
+
+<p>
+An output may connect to one or more <code>AudioNode</code> inputs, thus <em>fanout</em> is supported.  An input may be connected from one
+or more <code>AudioNode</code> outputs, thus <em>fanin</em> is supported. 
+</p>
+
+<p>
+In order to handle this <em>fanin</em>, any <code>AudioNode</code> with inputs performs an up-mixing of all connections <em>for each input</em>:
+</p>
+
+<ol>
+<li>Calculate N: the maximum number of channels of all the connections to the input.  For example, if an input has a mono connection and a stereo connection
+then this number will be 2. </li>
+<li>For each connection to the input, <a href="#UpMix-section">up-mix</a> to N channels.</li>
+<li>Mix together all the up-mixed streams from (2).  This is a straight-forward mixing together of each of the corresponding channels from each
+connection.</li>
+</ol>
+
+<p>
+Please see <a href="#MixerGainStructure-section">Mixer Gain Structure</a> for more informative details.
+</p>
 
 <p>
 For performance reasons, practical implementations will need to use block processing, with each <code>AudioNode</code> processing a
@@ -1045,9 +1068,7 @@
 interface <dfn id="dfn-AudioNode">AudioNode</dfn> {
 
     void connect(AudioNode destination, optional unsigned long output = 0, optional unsigned long input = 0);
-
     void connect(AudioParam destination, optional unsigned long output = 0);
-
     void disconnect(optional unsigned long output = 0);
 
     readonly attribute AudioContext context;
@@ -3265,6 +3286,8 @@
 <div id="MixerGainStructure-section" class="section">
 <h2 id="MixerGainStructure">6. Mixer Gain Structure</h2>
 
+<p class="norm">This section is informative.</p>
+
 <h3 id="background">Background</h3>
 
 <p>One of the most important considerations when dealing with audio processing