[gmpi] Re: Req 76,78

  • From: "Didier Dambrin" <didid@xxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Fri, 4 Feb 2005 03:04:48 +0100

> All I can say is that, for myself, this makes GMPI totally useless, as I
> can't imagine myself separating UI & process in my own code, & there's
> probably quite a lot of coding overhead doing that.
> Of course I can only speak for myself, but I can't imagine anyone happy
> with that requirement.

Heh, A little secret, SynthEdit has the same restriction. Some Plugin coders ignore it. They use the 'official' API to pass the plugin 'this' pointer to the GUI. Thereby bypassing the restriction.

that's what I was thinking, and anyway you wouldn't be able to make a VSTi or DXi wrapper while respecting that requirement

We can't force coders to do things the thread-safe way. If you really want to break the rule, nothing's stopping you.

why/how wouldn't it be thread-safe while in the same process?

it's even worse, interprocess communication can get quite complex (and quite slow), and I'm sure most coders will have much more problems with that, than with simple thread locking.

Cleanly separating GUI and Audio code is a natural consequence of good design. If good design to you is "completely useless", stick with VST, you won't be dissapointed.

Good design is as important to me, but IMO it's separating UI & audio in different process that's very bad (coming from macs maybe?) design. To me, UI & audio should just be in separate threads, because it's the most efficient you can get, at least under windows. Interprocess communication is very painful (what's your solution, file mapping & ugly mutexes?) and very slow compared to interthread communication (which only requires very fast critical sections).

And yes I'm aware that plugins have problems with thread safety, but that's because a lot of coders aren't aware of how their host sequencer works, and the VST specs hardly mention it. But if your solution to this is interprocess communication, the result will be much worse, and much less efficient.

I can tell you that, by experience on a sequencer, communication between processing & UI may need to happen *all the time*. Because an UI can be much more than a bunch of knobs.

Best Regards,

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: