[ardour-dev] latency compensation questions
markknecht at gmail.com
Thu Mar 31 18:25:04 PST 2005
Thanks. That's helpful to many of us I'm sure.
You seem to be very careful below in using the word 'track'. What
about buses. If I create a set of tracks with audio, do a pre or post
fader send to the bus, and then put a plugin on that bus such as a
reverb is latency adjusted for the delay through the reverb plugin?
This is probably the most common way to place a reverb or any other
high-CPU usage plugin.
On Thu, 31 Mar 2005 20:23:43 -0500, Paul Davis
<paul at linuxaudiosystems.com> wrote:
> >Someone recently mentioned connection graphs in Ardour but I don't
> >recall if it was to do with latency calculations. Does Ardour adjust for
> >latencies at every connection in the system? If not, for which subset of
> >points are adjustments made?
> what happens is this:
> * each track computes the total delay of a signal passing through
> it. these delays are caused by plugins or inserts (nothing
> inherent to the track will cause a delay).
> * plugins report their delay to Ardour. LADSPA plugins use an
> ad-hoc mechanism that has thankfully become moderately
> standardized. VST plugins provide a getInitialDelay() function
> as part of the API standard.
> * the session gets the worst track delay across the entire
> session, and tells all tracks that value. each track then
> computes the difference between its own delay and the worst
> value, and stores it.
> * when the transport starts "rolling", each track delays
> "starting" by this stored value.
> * result: the worst-delayed track starts playing immediately, all
> others follow by the appropriate amount.
> * the latency compensation is recomputed every time the transport
> stops, every time a plugin is added or (in)activated.
> * NOTE: it is not recomputed when plugin parameters are modified.
> If you edit a plugin in a way that changes its latency, Ardour
> will not recompute latency compensation until the *next* time
> the transport stops. This seems like a reasonable compromise,
> since in general, the transport is likely to be rolling while
> you're playing with plugin parameters.
> >As an example, if I insert a gate on one track and trigger it from
> >another track (either/both tracks may be running other plugins as well),
> >can I expect the gate trigger and gate input to be in sync?
> a gate has no inherent latency, so of course.
> latency is caused by plugin algorithms that inevitably cause signal
> delay. the most common examples are algorithms required "windowed"
> analysis like FFT, but there are plenty of others.
> ardour-dev mailing list
> ardour-dev at lists.ardour.org
More information about the Ardour-Dev