]> Shamusworld >> Repos - ardour-manual/blobdiff - _manual/17_mixing/02_panning/01_stereo_panner.html
next batch of XHTML validation fixes. somebody really hates markup languages here...
[ardour-manual] / _manual / 17_mixing / 02_panning / 01_stereo_panner.html
index 77007d4e97a44af8e15aedbaeb5c51e6afc049dd..afc553dd2530c8dab979df721a151f353771f740 100644 (file)
@@ -3,123 +3,250 @@ layout: default
 title: Stereo Panner
 ---                        
 
-<h2>Stereo Panner</h2>
+<p>
+  The default stereo panner distributes two inputs to two outputs. Its
+  behaviour is controlled by two parameters, <em>width</em> and
+  <em>position</em>. The
+  default settings for the stereo panner are <em>width=100%</em> and  
+  <em>position=center</em>. 
+  This stereo panner assumes that the signals
+  you wish to distribute are either uncorrelated (i.e. totally 
+  independent), or that they contain a stereo image which is 
+  <em>mono-compatible</em>, such as a co-incident microphone recording, or a 
+  sound stage that has been created with pan pots.<sup><a href="#caveat">*</a></sup>
+</p>
+<div class="well">
+  With the default values it is not possible to alter the position,
+  since the width is already spread entirely across both outputs. To
+  alter the position, you must first reduce the width.
+</div>
+
+<h2>Stereo Panner User Interface</h2>
 
+<img src="/images/stereo-panner-annotated.png" alt=""/>
+
+<p>
+  The panner user interface consists of three elements, divided between
+  the top and bottom half. Click and/or drag in the top half to
+  control position; click and/or drag in the bottom half to control
+  width (see below for details).
+</p>
 <p>
-The stereo panner distributes 2 inputs to 2 outputs. Its behaviour is
-controlled by two parameters, <code>width</code>
-and <code>position</code> (the latter could also be referred to as
-"direction", or "azimuth" without loss of accuracy).
+  In the top half is the position indicator, which shows where the
+  center of the stereo image is relative to the left and right
+  edges. When this is the middle of the panner, the stereo image is
+  centered between the left and right outputs. When it all the way to
+  the left, the stereo image collapses to just the left speaker. 
 </p>
+<p>
+  In the bottom half are two signal indicators, one marked "L" and the
+  other "R". The distance between these two shows the width of the
+  stereo image. If the width is reduced to zero, there will only be a
+  single signal indicator marked "M" (for mono), whose color will
+  change to indicate the special state.
+</p>
+<p>
+  It is possible to invert the outputs (see below) so that whatever
+  would have gone to the right channel goes to the left and vice
+  versa. When this happens, the entire movable part of the panner
+  changes color to indicate clearly that this is the case. 
+</p>
+
+<h3>Position vs. L/R</h3>
 
 <p>
-The default settings for the stereo panner
-are <code>width=100%</code>, <code>position=center</code>. With these
-values it is not possible to alter the position, since the width is
-already spread entirely across both outputs. To alter the position,
-you must first reduce the width.
+  Although the implementation of the panner uses the "position"
+  parameter, when the user interface displays it numerically, it shows a pair of numbers that
+  will be familiar to most audio engineers. 
 </p>
 
+<table>
+<tr><th>Position</th><th>L/R</th><th>English</th></tr>
+<tr><td>0</td><td>L=50% R=50%</td><td>signal image is midway between
+    left and right speakers</td></tr>
+
+<tr><td>-1</td><td>L=100% R=0%</td><td>signal image is entirely
+    at the left speaker</td></tr>
+
+<tr><td>1</td><td>L=0% R=100%</td><td>signal image is entirely
+    at the right speaker</td></tr>
+</table>
+
+<p>
+  One way to remember this sort of convention is that the middle of the
+  USA is not Kansas, but "Los Angeles: 50% New York: 50%". 
+</p>
+
+<h3>Examples In Use</h3>
+
+<table>
+<tr><th>Appearance</th><th>Settings</th></tr>
+<tr><td><img src="/images/stereo-panner.png"></td><td>Width=100%,
+    L=50 R=50</td></tr>
+<tr><td><img src="/images/stereo-panner-zero.png"></td><td>Width=0%,
+    L=50 R=50</td></tr>
+<tr><td><img src="/images/stereo-panner-inverted.png"></td><td>Width=-100%, Position = 0 (center)</td></tr>
+<tr><td><img src="/images/stereo-panner-right.png"></td><td>Width=36%,
+    L=44 R=56</td></tr>
+<tr><td><img src="/images/stereo-panner-hard-right.png"></td><td>Width=0%,
+    L=0 R=100</td></tr>
+</table>
+
 <h4>Using the mouse</h4>
 
-<p>Mouse operations in the upper half of the panner adjust the position
+<p>
+  Mouse operations in the upper half of the panner adjust the position
   parameter, constrained by the current width setting. 
 </p>
-
-<p>Mouse operations in the lower half of the panner adjust the width
+<p>
+  Mouse operations in the lower half of the panner adjust the width
   parameter, constrained by the current position setting. 
 </p>
-
-
-<p>To change the position smoothly, press the right button and drag
+<p>
+  To change the position smoothly, press the right button and drag
   within the top half of the panner, then release. The position will
-  be limited by the current width setting.
+  be limited by the current width setting. <em>Note: you do not need
+  to grab the position indicator in order to drag</em>
 </p>
-
-<p>To change the width smoothly, press the right button and drag
+<p>
+  To change the width smoothly, press the right button and drag
   within the lower half of the panner, then release. The width will be
-  limited by the current position setting.
+  limited by the current position setting.<em>Note: you do not need to
+  grab the L/R indicators in order to drag</em>
 </p>
 
 <dl class="faq">
 
 <dt>Reset to defaults</dt>
-<dd>Click <key class="mod3">button 1</key></dd>
+<dd>Click <key class="mod3">right button</key></dd>
 
 <dt>Change to a "hard left"</dt>
-<dd>Double click <key class="mod1">button 1</key> in the upper left half
+<dd>Double click <key class="mod2">right button</key> in the upper left half
   of the panner</dd>
 
 <dt>Change to a "hard right"</dt>
-<dd>Double click <key class="mod1">button 1</key> in the upper right half
+<dd>Double click <key class="mod2">right button</key> in the upper right half
   of the panner</dd>
 
 <dt>Move position as far left as possible, given width</dt>
-<dd>Double click <key>button 1</key> in the upper left half of the
+<dd>Double click <key>right button</key> in the upper left half of the
   panner</dd>
 
 <dt>Move position as far right as possible, given width</dt>
-<dd>Double click <key>button 1</key> in the upper right half of the
+<dd>Double click <key>right button</key> in the upper right half of the
   panner</dd>
 
 <dt>Set the position to center</dt>
-<dd>Click <key>button 1</key> in the upper middle of the panner</dd>
+<dd>Click <key>right button</key> in the upper middle of the panner</dd>
 
-<dt>Reset width to 180&deg; (100%)</dt>
-<dd>Double click <key>button 1</key> on the lower left side</dd>
+<dt>Reset to maximum possible width</dt>
+<dd>Double click <key>right button</key> on the lower left side</dd>
 
-<dt>Reset width to -180&deg; (inverted 100%)</dt>
-<dd>Double click <key>button 1</key> on the lower right side</dd>
+<dt>Invert (flip channel assignments)</dt>
+<dd>Double click <key>right button</key> on the lower right side</dd>
 
 <dt>Set width to 0&deg;</dt>
-<dd>Double click <key>button 1</key> in the lower middle</dd>
+<dd>Double click <key>right button</key> in the lower middle</dd>
 </dl>
 
 <h4>Keyboard bindings</h4>
 
-When the pointer is within a stereo panner user interface, the following
-keybindings are available to operate on that panner:
+<p>
+  When the pointer is within a stereo panner user interface, the following
+  keybindings are available to operate on that panner:
+</p>
 
 <dl>
-<dt><key>&uarr;</key></dt>
-<dd>increase width by 1&deg;</dd>
-<dt><key class="mod1">&uarr;</key></dt>
-<dd>increase width by 5&deg</dd>
-<dt><key>&darr;</key></dt>
-<dd>decrease width by 1&deg;</dd>
-<dt><key class="mod1">&darr;</key></dt>
-<dd>decrease width by 5&deg;</dd>
-<dt><key class="mod2">&uarr;</key></dt>
-<dd>reset width to 180&deg; (100%)</dd>
-<dt><key>&larr;</key></dt>
-<dd>move position 1&deg; to the left</dd>
-<dt><key>&rarr;</key></dt>
-<dd>move position 1&deg to the right</dd>
-<dt><key>0</key></dt>
-<dd>reset position to center</dd>
+  <dt><key>&uarr;</key> / <key class="mod1">&uarr;</key></dt>
+  <dd>increase width by 1&deg; / 5&deg;</dd>
+  <dt><key>&darr;</key> / <key class="mod1">&darr;</key></dt>
+  <dd>decrease width by 1&deg; / 5&deg;</dd>
+  <dt><key>&larr;</key> / <key class="mod1">&larr;</key></dt>
+  <dd>move position 1&deg; / 5&deg; to the left</dd>
+  <dt><key>&rarr;</key> / <key class="mod1">&rarr;</key></dt>
+  <dd>move position 1&deg / 5&deg; to the right</dd>
+  <dt><key>0</key></dt>
+  <dd>reset position to center</dd>
+  <dt><key class="mod2">&uarr;</key></dt>
+  <dd>reset width to full (100%)</dd>
 </dl>
 
-<h4>Using the scroll wheel</h4>
+<h4>Using the scroll wheel/touch scroll</h4>
 
-When the pointer is within a stereo panner user interface, the scroll
-wheel may be used as follows:
+<p>
+  When the pointer is within a stereo panner user interface, the scroll
+  wheel may be used as follows:
+</p>
 
 <dl>
-<dt>scroll left</dt>
-<dd>increase width by 1&deg;</dd>
+<dt>left / <key class="mod1">left</key></dt>
+<dd>increase width by 1&deg; / 5&deg;</dd>
 
-<dt><key class="mod1">scroll left</key></dt>
-<dd>increase width by 5&deg;</dd>
+<dt>right / <key class="mod1">right</key></dt>
+<dd>decrease width by 1&deg; / 5&deg;</dd>
 
-<dt>scroll left</dt>
-<dd>decrease width by 1&deg;</dd>
+<dt>up / <key class="mod1">up</key></dt>
+<dd>move position 1&deg; / 5&deg; to the left</dd>
 
-<dt><key class="mod1">scroll left<key></dt>
-<dd>decrease width by 5&deg;</dd>
+<dt>down / <key class="mod1">down</key></dt>
+<dd>move position 1&deg; / 5&deg;to the right</dd>
+</dl>
 
-<dt>scroll up</dt>
-<dd>move position 1&deg; to the right</dd>
+<h2><a name="caveat"></a>Stereo panning caveats</h2>
+
+<div class="well">
+The stereo panner will introduce unwanted side effects on
+material that includes a time difference between the channels, such
+as A/B, ORTF or NOS microphone recordings, or delay-panned mixes.<br />   
+When you reduce the with, you are effectively summing two highly
+correlated signals with a delay, which will cause comb filtering.
+</div>
+<p>  
+Let's take a closer look at what happens when you record a source at 45° to the
+right side with an ORTF stereo microphone array and then manipulate the width.
+</p>
+<p>
+For testing, we apply a pink noise signal to both inputs of an Ardour stereo
+bus with the stereo panner, and feed the bus output to a two-channel analyser. 
+Since pink noise contains equal energy per octave, the expected readout is a
+straight line, which would indicate that our signal chain does not color the
+sound:
+</p>
+<img src="/images/stereo-panner-with-ORTF-fullwidth.png" />
+<p>
+To simulate an ORTF, we use Robin Gareus' stereo balance
+control LV2 to set the level difference and time delay. Ignore the Trim/Gain
+&mdash; its purpose is just to align the test signal with the 0dB line of the
+analyser.
+</p>
+<p> 
+Recall that an ORTF microphone pair consists of two cardioids spaced 17 cm
+apart, with an opening angle of 110°.
+For a far source at 45° to the right, the time difference between the capsules 
+is 350 &mu;s or approximately 15 samples at 44.1 kHz. The level difference 
+due to the directivity of the microphones is about 7.5 dB (indicated by the 
+distance between the blue and red lines in the analyser).
+</p>
+<p>
+Now for the interesting part: if we reduce the width of the signal to 50%,
+the time-delayed signals will be combined in the panner. Observe what
+happens to the frequency response of the left and right outputs:
+</p>
+<img src="/images/stereo-panner-with-ORTF-halfwidth.png" />
+<p>
+You may argue that all spaced microphone recordings will undergo comb 
+filtering later, when the two channels recombine in the air between the speakers.
+Perceptually however, there is a huge of difference: our hearing system is
+very good at eliminating comb filters in the real world, where their component
+signals are spatially separated. But once you combine them
+inside your signal chain, this spatial separation is lost and the brain will
+no longer be able to sort out the timbral mess. As usual, you
+get to keep the pieces.
+</p>
+<div class="well">
+Depending on your material and on how much you need to manipulate the width,
+some degree of comb filtering may be acceptable. Then again, it may not. Listen
+carefully for artefacts if you manipulate unknown stereo signals &mdash; many
+orchestra sample libraries for example do contain time-delay components.
+</div>
 
-<dt>scroll down</dt>
-<dd>move position 1&deg; to the right</dd>
-</dl>