manual/include/stereo-panner.html
Eugene Petkevich 40ebcb05ae Fix a typo
2018-11-08 11:35:01 -08:00

260 lines
10 KiB
HTML

<p>
The default <dfn>stereo panner</dfn> distributes two inputs to two outputs. Its
behaviour is controlled by two parameters, <dfn>width</dfn> and
<dfn>position</dfn>. By default, the panner is centered at full width.
</p>
<p>
The stereo panner assumes that the signals to distribute are either uncorrelated
(i.e. totally independent), or that they contain a stereo image which is
<dfn>mono-compatible</dfn>, 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>
<p class="note">
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, the width must first be reduced.
</p>
<h2>Stereo Panner User Interface</h2>
<figure class="left">
<img src="/images/stereo-panner.png" alt="The Stereo Panner">
<figcaption>
The Stereo Panner
</figcaption>
</figure>
<p>
The <dfn>panner user interface</dfn> consists of three elements, divided between
the top and bottom half. Clicking and/or dragging in the top half
controls position; clicking and/or dragging in the bottom half controls
width (see below for details).
</p>
<p>
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 <kbd class="menu">L</kbd> and the
other <kbd class="menu">R</kbd>. 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 <kbd class="menu">M</kbd> (for mono), whose color will
change to indicate this 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>
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 class="nodl">
<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 class="nodl">
<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
parameter, constrained by the current width setting.
</p>
<p>
Mouse operations in the lower half of the panner adjust the width
parameter, constrained by the current position setting.
</p>
<p>
The position can be changed smoothly, by pressing the right button and dragging
within the top half of the panner, then releasing. The position will
be limited by the current width setting. <em>Note: it is not necessary
to grab the position indicator in order to drag.</em>
</p>
<p>
The width can also be changed smoothly, by pressing the right button and dragging
within the lower half of the panner, then releasing. The width will be
limited by the current position setting. <em>Note: it is not necessary
to grab the L/R indicators in order to drag.</em>
</p>
<table class="dl">
<tr><th>Reset to defaults</th>
<td>Click <kbd class="mod3 mouse">right</kbd></td></tr>
<tr><th>Change to hard left</th>
<td>Double click <kbd class="mod2 mouse">right</kbd> in the upper left half
of the panner</td></tr>
<tr><th>Change to a hard right</th>
<td>Double click <kbd class="mod2 mouse">right</kbd> in the upper right half
of the panner</td></tr>
<tr><th>Move position as far left as possible, given width</th>
<td>Double click <kbd class="mouse">right</kbd> in the upper left half of the
panner</td></tr>
<tr><th>Move position as far right as possible, given width</th>
<td>Double click <kbd class="mouse">right</kbd> in the upper right half of the
panner</td></tr>
<tr><th>Set the position to center</th>
<td>Click <kbd class="mouse">right</kbd> in the upper middle of the panner</td></tr>
<tr><th>Reset to maximum possible width</th>
<td>Double click <kbd class="mouse">right</kbd> on the lower left side</td></tr>
<tr><th>Invert (flip channel assignments)</th>
<td>Double click <kbd class="mouse">right</kbd> on the lower right side</td></tr>
<tr><th>Set width to 0&deg;</th>
<td>Double click <kbd class="mouse">right</kbd> in the lower middle</td></tr>
</table>
<h4>Keyboard bindings</h4>
<p>
When the pointer is within a stereo panner user interface, the following
keybindings are available to operate on that panner:
</p>
<table class="dl">
<tr><th><kbd>&uarr;</kbd> / <kbd class="mod1">&uarr;</kbd></th>
<td>increase width by 1&deg; / 5&deg;</td></tr>
<tr><th><kbd>&darr;</kbd> / <kbd class="mod1">&darr;</kbd></th>
<td>decrease width by 1&deg; / 5&deg;</td></tr>
<tr><th><kbd>&larr;</kbd> / <kbd class="mod1">&larr;</kbd></th>
<td>move position 1&deg; / 5&deg; to the left</td></tr>
<tr><th><kbd>&rarr;</kbd> / <kbd class="mod1">&rarr;</kbd></th>
<td>move position 1&deg; / 5&deg; to the right</td></tr>
<tr><th><kbd>0</kbd></th>
<td>reset position to center</td></tr>
<tr><th><kbd class="mod2">&uarr;</kbd></th>
<td>reset width to full (100%)</td></tr>
</table>
<h4>Using the scroll wheel/touch scroll</h4>
<p>
When the pointer is within a stereo panner user interface, the scroll
wheel may be used as follows:
</p>
<table class="dl">
<tr><th><kbd class="mouse">&lArr;</kbd> / <kbd class="mod1 mouse">&lArr;</kbd></th>
<td>increase width by 1&deg; / 5&deg;</td></tr>
<tr><th><kbd class="mouse">&rArr;</kbd> / <kbd class="mod1 mouse">&rArr;</kbd></th>
<td>decrease width by 1&deg; / 5&deg;</td></tr>
<tr><th><kbd class="mouse">&uArr;</kbd> / <kbd class="mod1 mouse">&uArr;</kbd></th>
<td>move position 1&deg; / 5&deg; to the left</td></tr>
<tr><th><kbd class="mouse">&dArr;</kbd> / <kbd class="mod1 mouse">&dArr;</kbd></th>
<td>move position 1&deg; / 5&deg;to the right</td></tr>
</table>
<h2><a name="caveat"></a>Stereo panning caveats</h2>
<p class="warning">
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 the width is reduced, two highly correlated signals with a delay are
effectively summed, which will cause <dfn>comb filtering</dfn>.
</p>
<p>
Let's take a closer look at what happens when a source is recorded at 45° to the
right side with an ORTF stereo microphone array and then the width manipulated.
</p>
<p>
For testing, we apply a <dfn>pink noise</dfn> 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>
<figure class="center">
<img src="/images/stereo-panner-with-ORTF-fullwidth.png" alt="Stereo panner
with ORTF fullwidth">
<figcaption>Stereo panner with ORTF full width</figcaption>
</figure>
<p>
An ORTF is simulated using Robin Gareus' stereo balance control LV2 to set the
level difference and time delay. The Trim/Gain can be ignored&mdash;its purpose
is just to align the test signal with the 0dB line of the analyser.
</p>
<p>
An <dfn>ORTF</dfn> microphone pair consists of two cardioids spaced 17&nbsp;cm
apart, with an opening angle of 110&deg;. For a far source at 45&deg; to the
right, the time difference between the capsules is 350&nbsp;&mu;s or
approximately 15 samples at 44.1&nbsp;kHz. The level difference due to the
directivity of the microphones is about 7.5&nbsp;dB (indicated by the distance
between the blue and red lines in the analyser).
</p>
<p>
Now for the interesting part: if the width of the signal is reduced to 50%,
the time-delayed signals will be combined in the panner. What happens to the
frequency response of the left and right outputs is shown in the following
picture:
</p>
<figure class="center">
<img src="/images/stereo-panner-with-ORTF-halfwidth.png" alt="Stereo panner
with ORTF halfwidth">
<figcaption>Stereo panner with ORTF half width</figcaption>
</figure>
<p>
It can be argued 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 difference: our hearing
system is very good at eliminating comb filters in the real world, where their
component signals are spatially separated. But once they are combined inside
a signal chain, this spatial separation is lost and the brain will no
longer be able to sort out the timbral mess.
</p>
<p class="note">
Depending on the material and on how much the width needs to be manipulated,
some degree of comb filtering may be acceptable. Then again, it may not.
It is advised to listen carefully for artefacts when manipulating unknown stereo
signals&mdash;many orchestra sample libraries for example do contain
time-delay components.
</p>