mystran wrote:lorcan wrote:Aleksey Vaneev wrote:Decoupling of UI and DSP was always a bad idea, it's good only from academic perfection point of view. Now we have to push megabytes of data between UI and DSP to draw spectrum analysis view.
AAX and AU do it too, I'm not sure you could say Apple and Avid are academic perfectionists.
At least one of the more popular frameworks (and I suspect this approach is also very popular among people who don't use frameworks), namely IPlug appears to handle this for AU (no idea about AAX, haven't looked at that) by having the GUI query for a custom property which is literally the pointer to the actual plugin object. Once you have the raw pointer, you basically give middle finger to the whole separation non-sense and just do it the more efficient way.
IMHO the big problem with ALL the plugin interfaces is that they were designed by idiots who thought they are supposed to dictate the internal architecture of the plugin rather than just providing an actual interface. The fact is, that's just not going to happen and the more you try to force it down the throat of the developers, the uglier the hacks you get as a result.
AudioUnit is worse than anything else out there in this respect. They do not even have a standard way to define variable-size properties to communicate data, so I had to use workarounds. I was actually trying to play a "good guy" and implemented AudioUnit GUI and DSP decoupling the "correct way" only to later understand that nobody needs it after multi-core processors appeared, so there's no need in the originally available "outboard" processing capabilities. I expect when Apple releases the ARM desktop processors we'll need to move to AUv3 forcefully, another can of worms.