summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/lv2_plugin.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-12-06 13:49:16 +0100
committerRobin Gareus <robin@gareus.org>2015-12-06 14:27:24 +0100
commit065d7c852a1586a3020affd6905f108abf252119 (patch)
treea89c10785b7ae940204930f797200979b0817e49 /libs/ardour/ardour/lv2_plugin.h
parentbc15146560abb7694e8e06735445f437d3ad40eb (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.h2
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,