From 065d7c852a1586a3020affd6905f108abf252119 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 6 Dec 2015 13:49:16 +0100 Subject: 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. --- libs/ardour/ardour/lv2_plugin.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libs/ardour/ardour') 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, -- cgit v1.2.3