[gmpi] Re: Requirements

  • From: "Jeff McClintock" <jeffmcc@xxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Sat, 15 Nov 2003 12:36:34 +1300

cool Tim,

> What exactly IS the VST way?  Is it "here is a window - draw on it" ?

yep, exactly, Plugin tells the host how big, you get a window-handle in
return.

VST GUI builds on top of that, to provide cross-platform widgets etc (never
used it myself though).

from the host's point of view, you simply provide a blank window.(VST GUI
takes that blank window, and does the rest).

Best Regards,
Jeff

----- Original Message ----- 
From: "Tim Hockin" <thockin@xxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Saturday, November 15, 2003 12:18 PM
Subject: [gmpi] Re: Requirements


> On Sat, Nov 15, 2003 at 12:02:31PM +1300, Jeff McClintock wrote:
> >   I'm not really talking about how the GUI is drawn (whether via a
> > cross-platform toolkit or whatever).  I'm talking about simplifying the
> > plugin, and cleanly seperating the GUI into an abstract entity.
>
> These are indeed two issues.
>
> > You write an audio plugin. A 'black-box' with all it's parameters
exposed.
> > There is only one way to set a parameter, via the host.  The plugin
knows
> > nothing about GUIs.
> >
> > You (optionally) write a GUI class.  Think of it like a MIDI control
> > surface, it has knobs, sliders, readouts whatever, but all it's
interaction
> > with the plugin is 'down a wire' via the host.
>
> I agree with this completely, and it is already required.  I'll add a new
> line to clarify:
>
>       GUIs are not part of a DSP plugin with private access to the DSP
>       internals.  All communication between UI and plugin is via standard
>       control signals.  In effect, the GUI is a separate plugin.
>
> > But, of course, for backward compatiblilty with VST, we have to also
support
> > the VST-way.
>
> What exactly IS the VST way?  Is it "here is a window - draw on it" ?
>
> I agree with your description.  But how you draw a GUI is the hard part.
> The "here's a window - draw on it" is fundamentally not cross platform.
>
> Which is where I dreamed up the GMPI GUI API (yes, it should be separate
but
> developed for 1.0).  To really provide a cross platform, in-process UI, I
> saw soemthing like this:
>
> plug: host, give me a window with dimensions (width, height)
> plug: create a knob widget at (x1, y1) with size (w1, h1) from bitmap b1
> plug: when that knob widget changes, call me back at my_knob_callback
> plug: draw it!
>
> It defines a *minimal* gui toolkit that puts the control in the gui code,
> but leaves the actual toolkit to the host's gui subsystem.  X hosts can
use
> their native X toolkits, Windows can use whatever it uses, MacOS can use
> Carbon, etc.  The plugins don't deal with native GUI issues.
>
> It's not going to be easy, though.  Is this how libvstgui works, more or
> less?  We'd require it to be host-provided instead of a generic dll,
but...
>
> Tim
>
> ----------------------------------------------------------------------
> Generalized Music Plugin Interface (GMPI) public discussion list
> Participation in this list is contingent upon your abiding by the
> following rules:  Please stay on topic.  You are responsible for your own
> words.  Please respect your fellow subscribers.  Please do not
> redistribute anyone else's words without their permission.
>
> Archive: //www.freelists.org/archives/gmpi
> Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
>
>
>


----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: