View Issue Details

IDProjectCategoryView StatusLast Update
0002682ardourbugspublic2021-01-28 06:26
Reporteragorka Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
PlatformLinuxOSUbuntuOS VersionKarmic
Product Version2.8 
Summary0002682: VST plug-in editors are not really closed when closed.
DescriptionI'm working on an Spectrum Analyzer VST plug-in. It uses lots of CPU when analyzing, so it automatically deactivates analyzing when editor window is closed. It works OK everywhere except Ardour, where editor window isn't destroyed when user closes the window. Editor window probably just remain hidden, still using resources. It is evident with my plug-in, but not so evident with other plug-ins. Still, having multiple VST plug-ins updating their invisible GUI's might seriously affect overall performance of DAW.
Steps To Reproduce1) Open a session
2) Add a VST plug-in
3) Open it's editor - effEditOpen is sent to the plug-in
4) Close editor - nothing is send to the plug-in
5) Remove VST plug-in - now effEditClose is actually send
TagsNo tags attached.

Activities

weirdconstructor

2021-01-27 07:22

reporter   ~0025472

Other hosts, like Bitwig, call effEditClose / effEditOpen whenever the GUI is opened/closed.
I believe that would be the right behavior, just because you opened a plugin once, you don't want it's GUI
to linger around for the rest of the session.

Especially OpenGL plugins (of which there are many, and more to come) usually redraw the GUI many times per second.
So keeping around the window is very wasteful.

weirdconstructor

2021-01-27 11:10

reporter   ~0025474

Another data point I got from #lad (IRC freenode) is, that not only does Bitwig do this, also REAPER and Renoise call effEditClose properly.

x42

2021-01-27 19:58

administrator   ~0025475

The problem you mention cannot be solved simply by destroying the Window.

Plugins should not render their UI when they're not mapped on the screen, regardless of the window being realized or not. A window that is off-screen or on a different desktop should not render itself unless it is mapped and visible. Most professional plugins heed that. Force closing the window is just a poor workaround.

I expect you come from the windows world where the window "X" button is often misinterpreted to mean "exit/quit", rather than close/hide on other OS.

The main motivation behind Ardour keeping windows around is to be able to show them again instantly, without requiring to reload resources.
And in some cases also so that the plugin GUI already has accumulated history in case it features analyzers or meters. As opposed to Bitwig, Renoise etc. Ardour is focused on live audio realtime signal processing
where the mixer runs constantly and does not freeze or idle.

weirdconstructor

2021-01-28 06:26

reporter   ~0025477

Thanks for your reply, I'll look into the toolkit I'm using then to stop drawing.

btw.: I do not come from the "windows world", but I did not encounter that interpretation yet.
I guess it kind of makes sense when you view the plugin as being a dialog window of the host application,
instead of a separate application UI.

Issue History

Date Modified Username Field Change
2009-05-17 20:57 agorka New Issue
2010-04-24 10:28 cth103 Category bugs => bugs2
2010-04-24 10:31 cth103 Category bugs2 => bugs
2021-01-27 07:22 weirdconstructor Note Added: 0025472
2021-01-27 11:10 weirdconstructor Note Added: 0025474
2021-01-27 19:58 x42 Note Added: 0025475
2021-01-28 06:26 weirdconstructor Note Added: 0025477