diff options
author | Robin Gareus <robin@gareus.org> | 2015-12-06 13:49:16 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-12-06 14:27:24 +0100 |
commit | 065d7c852a1586a3020affd6905f108abf252119 (patch) | |
tree | a89c10785b7ae940204930f797200979b0817e49 /libs/ardour/ardour/lv2_plugin.h | |
parent | bc15146560abb7694e8e06735445f437d3ad40eb (diff) |
outline a "NoSampleAccurateControl" LV2 feature:
Since control-ports have a fixed value for the current process-block,
Ardour splits a plugin's run() process cycle on every automation event
to facilitate sample-accurate automation.
Since automation is interpolated between events, this ensures that each
explicit automation point is reached (not interpolated).
Plugins where this is not required and which favor a fixed block-size,
can now specify an optional Feature: NoSampleAccurateControl.
One example: a convolution plugin with smoothed gain control.
Diffstat (limited to 'libs/ardour/ardour/lv2_plugin.h')
-rw-r--r-- | libs/ardour/ardour/lv2_plugin.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index fcbf8b90cc..a0572b5af7 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -97,6 +97,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee void cleanup (); int set_block_size (pframes_t); + bool requires_fixed_sized_buffers () const; int connect_and_run (BufferSet& bufs, ChanMapping in, ChanMapping out, @@ -178,6 +179,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee uint32_t _patch_port_in_index; uint32_t _patch_port_out_index; URIMap& _uri_map; + bool _no_sample_accurate_ctrl; friend const void* lv2plugin_get_port_value(const char* port_symbol, void* user_data, |