]> Shamusworld >> Repos - ardour-manual/blob - include/trackbus-signal-flow.html
creating-location-markers: Unmatched paren
[ardour-manual] / include / trackbus-signal-flow.html
1
2 <h2>Overview</h2>
3
4 <figure class="right">
5   <img src="/images/track_signal_routing.png" alt="track signal routing">
6   <figcaption>Typical signal routing in a channel strip.</figcaption>
7 </figure>
8
9 <p>
10   In each individual Track or Bus the signal flow is top to bottom, as shown in
11   the diagram on the right.
12 </p>
13
14 <p>
15   Trim, Fader and Panner are provided by Ardour. The Processor Box can hold third
16   party plugins or host-provided redirects (insert, aux-send, etc.).
17 </p>
18
19 <p>
20   An important aspect is that the signal flow is multi-channel and not fixed
21   throughout the track. For example, a track can have a mono input, a mono to
22   stereo plugin (e.g. reverb) flowing into a surround panner with 6 outputs.
23 </p>
24 <p>
25   The design of Ardour is that the width of the signal flow is defined by the
26   passage through plugins in the processor box, followed by panning. The number
27   of inputs to the panner is defined by the number of outputs of the last plugin
28   in the chain. The number of panner outputs is equal to the track's outputs
29   ports, which can be added and removed dynamically. This schema is called
30   <em>Flexible I/O</em>. It is very powerful and a distinctive feature of
31   Ardour.
32 </p>
33
34 <p class="note">
35   The golden rule of processor signal flow: The number of outputs of one link
36   of the process chain defines the number of inputs of the next, until the panner.
37 </p>
38
39 <p>
40   Due to this rule there is one very common case that is hard to achieve:
41   keeping a mono track mono. With <em>Flexible I/O</em>, if a stereo plugin is
42   added on a mono track, the signal flow after that plugin becomes stereo.
43 </p>
44
45 <h2>Strict I/O</h2>
46
47 <p>
48   Strict I/O enforces a simple rule: plugins have the same number of inputs as
49   they have outputs. By induction the track will have as many output ports as
50   there are input ports.
51 </p>
52
53 <p>
54   Adding a plugin will not modify the signal flow. The number of plugin outputs
55   is forced to the number of inputs present at the point of insertion. If a
56   plugin pin is missing, it is ignored. If a plugin pin is not connected, it is
57   fed with silence. Non-connected plugin outputs are ignored.
58 </p>
59
60 <p>
61   Strict I/O enforces the number of output ports. The number of inputs to the
62   panner (outputs of last plugin) defines the number of track outputs (after
63   panner). Required ports are automatically added, excess ports are removed.
64   The user cannot manually add or remove output ports.
65 </p>
66
67 <p>
68   Strict I/O is set when creating the track and can later be enabled or
69   disabled dynamically in the context menu of every mixer strip.
70 </p>
71
72 <figure class="center">
73 <img src="/images/strict_io_routing.png" alt="strict I/O routing" />
74 <figcaption class=center>Flexible vs. Strict I/O.</figcaption>
75 </figure>
76
77 <p>
78   There are two exceptions to the above rule:
79 </p>
80
81 <ul>
82   <li>Midi Synths. When adding a synth at a point where there is a Midi port
83   only, the synthesizer plugin will add audio output ports, which trickle down
84   the processor chain to all follow up plugins as inputs and in turn force
85   their outputs to match</li>
86   <li>Side chain inputs are not affected by Strict I/O</li>
87 </ul>
88
89 <h2>Customizing the Signal Flow: The Pin Connection window</h2>
90
91 <p>
92   The signal flow though the mixer can be customized at every processor node
93   via <kbd class=menu>Pin Configuration</kbd> in the context menu of every
94   processor. User customization overrides all automatic (Flexible and Strict
95   I/O mode) inferred output port settings.
96 </p>
97
98 <p>
99   The Pin Connection window is made of three vertical sections:
100 </p>
101
102 <ul>
103   <li>an I/O config column</li>
104   <li>an interactive diagram</li>
105   <li>a sidechain column</li>
106 </ul>
107
108 <p>
109   By default, the I/O config is set to <em>Automatic</em>, i.e. the <kbd
110   class="menu">Manual Config</kbd> LED light is turned off. In this mode, the
111   diagram will display the standard input/outputs for this plugin, i.e. the
112   number of ports (inputs &amp; outputs) is equal to the number of pins on the
113   plugin, and a one-to-one connection is automatically created.
114 </p>
115
116 <p>
117   Adding new instances of the plugin allows to apply this plugin to more inputs
118   or outputs. E.g., a mono effect can be applied to each channel of a
119   <em>n</em>-channels track by adding as many instances of the plugins as there
120   are input channels (i.e. ports). This happens automatically when adding,
121   e.g., a mono effect to a stereo track:
122 </p>
123
124 <ul>
125   <li>Ardour creates two instances of the plugin</li>
126   <li>the plugin gets a (2x1) label in the processor box</li>
127   <li>its two input ports are each connected to one pin of an instance</li>
128   <li>each mono output pin of the plugin is connected to one output port</li>
129 </ul>
130
131 <p>
132   Output channels can also, in Manual Config mode, be added or removed, whether
133   they are audio or MIDI.
134 </p>
135
136 <p class="note">
137   Using the Pin Connection overrides the I/O config setting (Flexible vs.
138   Strict). A processor <em>can</em>, even in Strict I/O mode, have a different
139   number of outputs than inputs. Non-customized plugins downstream will follow
140   suit depending on the selected route mode. e.g. adding an additional output
141   to a plugin on a track set to Strict I/O will trickle down the process chain
142   to the output and result in the addition of an output port. This is useful
143   for example in case of a mono to stereo reverb.
144 </p>
145
146 <p>
147   The window allows connection of the I/O ports to the plugin pins and other
148   I/O ports, provided they are compatible (MIDI vs. audio), just by dragging
149   and dropping the end connectors on top of one another. A dotted connector's
150   line is a "<em>thru</em>" line that directly connects an input to an output
151   without connecting to a pin on the plugin&mdash;hence without any audio
152   modification. These "thru" connections are latency compensated, with respect
153   to those being affected by the plugin, in order to avoid phasing issues.
154 </p>
155
156 <p>
157   An example of using "thru" connections, shown below, is separate left/right
158   channel equalization using two mono plugins on a stereo track:
159 </p>
160
161 <figure class=center>
162 <img src="/images/left_right_eq.png" alt="Separate left/right Eq">
163 <figcaption class=center>An example of using two mono plugins on a stereo track.</figcaption>
164 </figure>
165
166 <p>
167   The only way to add inputs to a processor is via
168   <a href="@@sidechaining">Sidechaining</a> from another signal.
169   This is done by "tapping" the signal from another track or bus at any point.
170 </p>
171
172 <p>
173   Adding a sidechain signal in Ardour is as simple as enabling the <kbd
174   class="menu">Side Chain</kbd> button in the Pin Configuration window, and
175   choosing an <kbd class="menu">Audio</kbd> or <kbd class="menu">MIDI</kbd>
176   sidechain in the <kbd class="menu">Add Sidechain Input</kbd> lower right hand
177   section. A new drop-down menu appears, which displays a list of the
178   tracks/busses available to be sidechained, or, for a more complex setup (e.g.
179   sidechaining from hardware directly), the
180   <a href="@@patchbay">Routing Grid</a> (also accessible with a
181   <kbd class="mouse">Right</kbd>-click on the drop-down menu).
182 </p>
183
184 <p>
185   The sidechain ports can then be connected, as other inputs, to a pin of the
186   plugin, or an output port as a "thru".
187 </p>