From cc5e758a08b537c711df49549369d1675e183c94 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 13 Apr 2018 23:19:13 +0200 Subject: 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() --- gtk2_ardour/plugin_eq_gui.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 -- cgit v1.2.3