In each individual Track or Bus the signal flow is top to bottom. Consider the following diagram:
</p>
<pclass="center"><imgwidth="360px"src="/images/track_signal_routing.png"alt="track signal routing"/></p>
<p>
Trim, Fader and Panner are provided by Ardour. The Processor-Box can hold 3rd Party Plugins or host-provided redirects (insert, aux-send,..).
</p>
<p>
An important aspect is that the signal flow is multi-channel and not fixed throughout the track. For example, a Track can have a mono input, a mono to stereo plugin (e.g. reverb) flowing into a surround panner with 6 outputs. The design of Ardour is that width of the signal flow is defined by the passage through plugins in the processor box, followed by panning.
The number of inputs to the panner is defined by the number outputs of the last plugin in the chain. The number of panner outputs is equal to the track's outputs ports, which can be added and remove dynamically. This schema called <em>Flexible I/O</em>. It's very powerful and a distinct feature of Ardour.
</p>
<pclass="note">
The golden rule of processor signal flow:<br/>The number of outputs of one link of the process chain defines the number inputs of the next, until the panner.
</p>
<p>
Due to this rule there is one very common case that is hard to achieve: Keep a mono track mono. With <em>Flexible I/O</em>, if a stereo plugin is added on a mono track, the signal flow after that plugin becomes stereo.
</p>
<h2>Strict I/O</h2>
<p>Strict I/O enforces a simple rule: Plugins have the same number of inputs as they have outputs. By induction the track will have as many output-ports as there are input ports.</p>
<ol>
<li>Adding a Plugin will not modify the signal-flow. The number of plugin outputs is forced to the number of inputs present at the point of insertion.
If a plugin-pin is missing, it is ignored. If Plugin-pin is unconnected, it is fed with silence. Unconnected plugin outputs are ignored).</li>
<li>Strict I/O enforces the number of output ports. The number of inputs to the panner (outputs of last plugin) defines the number of track outputs (after panner).
Required ports are automatically added, excess ports are removed. The user cannot manually add/remove output ports.</li>
</ol>
<p>
Strict I/O is set when creating the track and can later be en/disabled dynamically in the context menu of every mixer strip.