View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0007794||ardour||bugs||public||2019-08-24 13:24||2019-08-24 13:24|
|Platform||Windows 10||OS||Windows||OS Version||10|
|Summary||0007794: GUI freeze when changing parameters in the "a-High/Low pass Filter" plugin.|
|Description||(see "Summary" and "Steps To Reproduce")|
|Steps To Reproduce||1. Start Ardour 5.12|
2. Create an "a-High/Low-Pass Filter" plugin.
3. Open GUI for that plugin.
4. Make sure "Plugin analysis" is visible.
5. Move a slider rapidly back and forth.
6. After a few seconds (if your computer is slow enough), GUI starts freezing.
|Additional Information||Tested on windows and linux, two different graphic cards, two different CPUs. Looks like it takes a lot of time to draw graphics, and when changing slider values, it can take so much time to update the graphics (probably caused by a flood of events) that the GUI freezes.|
A workaround is to remove the line with "siz = lpf_chunk" from the function dsp_run.
This does not happen in Ardour 5.6.0.
(clone of issue https://tracker.ardour.org/view.php?id=7787)
|Tags||No tags attached.|
||I've tested all the other "a-*" plugins now, and it only happens for the "a-High/Low-Pass Filter" plugin.|
||Making sure v-sync is turned on in 3d settings for the GFX card made no difference.|
Found a workaround. It's not freezing if I comment out this line:
siz = lpf_chunk
Maybe lots of exceptions are thrown in the inner loop for some reason? Just commenting out the call to self:queue_draw makes no difference, so it seems to be the dsp function itself that's causing the freeze. The sound seems fine though, but maybe there's some magic in ardour that makes sure the audio graph runs properly even when a lua dsp function fails?
Alas, no magic. Also no exceptions are thrown.. if there was any, the Lua-plugin would be bypassed.
Commenting out that line prevents the plugin from interpolating at 64fpp when a parameter changes.
If you show the plugin-analysis in the GUI, Ardour creates a 2nd instance of the plugin which runs in the GUI thread, non-realtime, and measures the impulse response, using a rather large block-size (8k).
I suppose that can be CPU intense, but I don't yet see how graphics driver could have any influence on this.