[LAD] ladspa: what does LADSPA_PROPERTY_REALTIME mean?

David Robillard d at drobilla.net
Sun Sep 13 03:07:04 UTC 2015


On Wed, 2015-09-09 at 22:56 +0200, IOhannes m zmölnig wrote:
> hi richard, paul, stefan and fellow LADders,
> 
> the Debian folks currently are a bit at a loss of the proper
> interpretation of the LADSPA_PROPERTY_REALTIME property.
> 
> ladspa.h says:
> > /* Property LADSPA_PROPERTY_REALTIME indicates that the plugin has a
> >    real-time dependency (e.g. listens to a MIDI device) and so its
> >    output must not be cached or subject to significant latency. */
> 
> the discussion started about a year ago (see [760758]), and it seems
> that there are two opposing interpretations of that property:
> 
> 
> #1 setting the property indicates to the host, that the plugin must not
> be used in a non-realtime environment.
> this means that a plugin that has this property set, must not be used
> for batch processing, e.g. because it uses wall-clocked input (like
> MIDI-devices) that simply won't deliver proper input when running at a
> speed that is decoupled from wall clock.
> 
> OR
> 
> #2 setting the property indicates to the host, that the plugin can be
> run at a lower (timing) priority; so the host can deliberately add
> latency without compromising the usefulness of the full processing
> chain. that would be mostly for plugins that do not do any input ->
> output processing, but only take input (e.g. metering, recording).

We changed the name of this to "isLive" in LV2 to avoid confusion with
the heavily overloaded term "realtime".

I believe #1 is the intent.  The hint serves to distinguish plugins that
have some dependency on real time, from those that do not (only
processing their input).  The latter can be used in a more functional
way, being called to process a block whenever, where the actual time run
is called is irrelevant.  The hint being set essentially means "if the
plugin is activated, run() must be called regularly at a rate roughly
corresponding to the passage of real time"

Th comment says "plugin has a real-time dependency (e.g. listens to a
MIDI device)" which seems pretty clear.  Explanation #2, while perhaps a
useful thing in some circumstances, really does not follow from the
hint's definition.

-- 
dr




More information about the Linux-audio-dev mailing list