summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-04-13 23:19:13 +0200
committerRobin Gareus <robin@gareus.org>2018-04-13 23:19:13 +0200
commitcc5e758a08b537c711df49549369d1675e183c94 (patch)
tree2ca455ce083fb0f84c696bd59b1b300d7741d627
parent4983eb565db219412d09b898286660e298a0176f (diff)
Fix plugin analysis for some VST and AU Plugins.
set_block_size() implies plugin deactivate(), activate() calls to re-initialize AU and VST plugins. So plugins will reset the internal state and not immediately respond correctly. Some plugins zero the output or ramp up internally, leading the analyzer to show invalid or random/uncorrelated information. This avoid periodic calls to de/activate()
-rw-r--r--gtk2_ardour/plugin_eq_gui.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gtk2_ardour/plugin_eq_gui.cc b/gtk2_ardour/plugin_eq_gui.cc
index 274cf014da..31e220555a 100644
--- a/gtk2_ardour/plugin_eq_gui.cc
+++ b/gtk2_ardour/plugin_eq_gui.cc
@@ -164,6 +164,7 @@ PluginEqGui::start_listening ()
_plugin->activate();
set_buffer_size(4096, 16384);
+ _plugin->set_block_size (_buffer_size);
// Connect the realtime signal collection callback
_plugin_insert->AnalysisDataGathered.connect (analysis_connection, invalidator (*this), boost::bind (&PluginEqGui::signal_collect_callback, this, _1, _2), gui_context());
}
@@ -364,7 +365,6 @@ PluginEqGui::run_impulse_analysis()
// map output buffers after input buffers (no inplace for VST)
out_map.offset_to (DataType::AUDIO, inputs);
- _plugin->set_block_size (_buffer_size);
_plugin->connect_and_run(_bufferset, 0, _buffer_size, 1.0, in_map, out_map, _buffer_size, 0);
samplecnt_t f = _plugin->signal_latency ();
// Adding user_latency() could be interesting