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