Resizable GUIs: Taking matters into my own hands

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

arakula wrote:http://www.hermannseib.com/programs/tvsthost.zip 8-)

I usually upload both normal and tracing versions (with a prepended "t") at the same time, since I'm painfully aware of the fact that this does not work on every machine in the world... the tracing version can make things easier to sort out.

Plus, if available, unreleased versions are there with an appended "beta". For VSTHost, that would be http://www.hermannseib.com/programs/vsthostbeta.zip (there's one available at the moment; has a plugin menu, displays MIDI activity, displays MIDI connections between PlugIns etc.). Use with caution 8-)

A hang in waveOutGetNumDevs(), however, is a bad sign, since that's inside the Windows MME code, perhaps a result of years of adding and removing devices; not much I could do about that.
I just tried the tracing version, and this time it started up fine, and was responsive. I only resized the window a few times to see if it hung, but it was fine (I did not load any plugins or anything). Then, without doing anything else, I simply tried to close it and it hung at that point. Task manager was unable to kill it, and XP could not shut down (as it failed to close VSTHost). So I had to pull the power. The trace log is short enough for me to post here, so here it is:

Code: Select all

----- Started Thu Jul 06 08:35:01 2006

Driver 0 "ASIO4ALL v2" V2: 4 possible rates, buffersize(64,2048,896,8), latency(1810,1810), channels(8, 14)
Driver 1 "M-Audio Delta ASIO" V51: 4 possible rates, buffersize(64,2048,512,0), latency(544,542), channels(6, 10)
LoadWaveOutDevice("MME: M-Audio Delta 410 1/2",44100,882)
    -> OK, sample rate=44100, buffer size=882
LoadWaveInDevice("MME: M-Audio Delta 410 1/2",882)
    -> OK
Starting VSTHost engine
  Starting MME Wave Input Device
  Starting MIDI Input Devices
VSTHost engine up again
Setup Main Window
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Setup MIDI keyboard
Full stop start.
Stopping VSTHost engine
Doesn't look like you can get much from that. But you are right, if it is somewhere in one of the waveOut calls then there isn't much you can do about it, and it probably is an issue with my system.

BitFlipper

Post

OK, here is my latest version:

Test Plugin

Status is as follows:

SONAR 5:
Works great.

Project 5 V2:
Works great.

energyXT:
Works great. BTW, energyXT has problems on multiple monitors (even when not using my plugin). For instance, try to resize the main eXT window on a monitor that is set up to be to the LEFT of the main monitor. My secondary monitor is to the left of the main monitor, so that means that there could be negative coordinates. eXT doesn't seem to work right in that case. Just a FYI for the developers.

Fruity Loops:
Works, but FL limits maximum window size to a somewhat smallish size.

Cantabile:
Works almost 100%. Can't resize from top of the window though...?

SaviHost:
Doesn't work right. Currently disabled for this host.

Other hosts:
Resizing is enabled, but not sure in which ones it will work. Please let me know if you gave it a try...! :)

BitFlipper

Post

Cubase SX3:
seems to be disabled, i.e. no cursor changes on the edges which means no resizing possible.

Also confirm the great performance in eXT.
And, FWIW, jorgen , the dev of eXT stated sometimes ago that multi monitors are not supported (yet) but will come in the next major version.

Post

Ableton Live 4
Works great

Ableton Live 5
Works great

Wavelab 5
Works great

Cubase LE
Disabled, no resizing possible
(previous version worked but had the unfortunate side effect of resizing the master progam window at the same time)

Cubase SX 2
Disabled, no resizing possible
(previous version worked but had the unfortunate side effect of resizing the master progam window at the same time)

joanaphone

Post

plastique wrote: Cubase SX3:
seems to be disabled, i.e. no cursor changes on the edges which means no resizing possible.

Also confirm the great performance in eXT.
And, FWIW, jorgen , the dev of eXT stated sometimes ago that multi monitors are not supported (yet) but will come in the next major version.
joanaphone wrote:Ableton Live 4
Works great

Ableton Live 5
Works great

Wavelab 5
Works great

Cubase LE
Disabled, no resizing possible
(previous version worked but had the unfortunate side effect of resizing the master progam window at the same time)

Cubase SX 2
Disabled, no resizing possible
(previous version worked but had the unfortunate side effect of resizing the master progam window at the same time)

joanaphone
Thanks for checking this out! I will look at SAVIHost and Cubase tonight. Once I have some good code I will share so that anyone else that wants to use this can do so. I figure that if you need a resizable UI, you can enable it for those hosts that you know it works well in, but disable resizing for all other hosts. In that case you will just need to pick a good size and live with it.

BTW, I no longer need to set the WS_THICKFRAME style flag, so the current version is much less invasive.

BitFlipper

Post

The inability to resize from top problem occurs in Chainer too.

Brad

Post

Thanks for explaining (not that I understand that much of it :-)) the SONAR/VST messages.

Post

I did not spend too much time on it last night, but here is the latest version. I beefed up the parent detection code so hopefully it detects the correct window now in most hosts. I also fixed the issue with the sizing cursor not appearing at the top of the window for some hosts.

Test Plugin

BTW, does anyone know what the link is to the Cubase Demos? I looked at the Steinburg website but for the life of me I can't find the page with the demo downloads.

BitFlipper

Post

I don't now when, but the demos have been discontinued by Steinberg (there's some notice somewhere on their site stating that it is not necessary to have a demo etc. and that you can find demos on several product cds ...).
With a bit of luck you can still google the first (and AFAIK only) SX demo (1.06) that was released, e.g. HERE .

The plugin wndow system should be the same that is still in use (I run this demo on my dev machine).

Post

Well, while you are tracking down a cubase demo...

This new version does allow resizing, but it doesn't really work.

The resising of the whole program window is fixed, which is good.

Unfortunately, when the plugin window is resized, it all goes a bit flakey and the final size bears no obious relationship to the movements made. I could not find a way to reduce the size - it grows wildly every time!

Would love to see this concept sorted - it's something that we really should be having as an every day facility, particularly with plugs that have graphical displays.

p.s. still ok in ableton and wavelab (top bar now allows resizing in both)

Post

joanaphone wrote:Well, while you are tracking down a cubase demo...

This new version does allow resizing, but it doesn't really work.

The resising of the whole program window is fixed, which is good.

Unfortunately, when the plugin window is resized, it all goes a bit flakey and the final size bears no obious relationship to the movements made. I could not find a way to reduce the size - it grows wildly every time!

Would love to see this concept sorted - it's something that we really should be having as an every day facility, particularly with plugs that have graphical displays.

p.s. still ok in ableton and wavelab (top bar now allows resizing in both)

Thanks for the info. Looks like things are improving. Once I get that demo of Cubase installed I will see what needs to be done to make it work right. At least it no longer tries to resize the main app :shock:.

BTW, I am going to stick all of this functionality into a class that will be really easy to use for anyone that is interested. I just want to improve the code a bit more.

BitFlipper

Post

BitFlipper wrote:
BTW, I am going to stick all of this functionality into a class that will be really easy to use for anyone that is interested. I just want to improve the code a bit more.

BitFlipper
Great - hopefully you will start something going with this. If you manage to sort cubase out, I would think that it becomes a viable option in most situations, simply refusing to be resized in hosts that are not supported - nothing lost and potentially a lot to be gained.

Post

Samplitude 8.3 SE
flickering, but resizing works great in all aspects.

Plogue Bidule
works great.

Tracktion 1.6
works great.

Post

BitFlipper- Any chance you'll make this code freely available?
aciddose wrote:you empty headed animal food trough wiper, your mother was a hamster and your father smelt of elderberries!

Post

asomers wrote:BitFlipper- Any chance you'll make this code freely available?
Sure, very soon now... :wink:

BitFlipper

Post Reply

Return to “DSP and Plugin Development”