I just committed revision 22. It fixes the following:
- Dynamically constructs objective C classes with unique names. No need for SymbiosisClassPrefix.h any more.
- Calls plug-in canDo("receiveVstMidiEvent") to determine if it should receive VST events, instead of (only) relying on the deprecated "wantEvents".
- Added "i" parameter display type for numerical integer parameters.
- Added workaround for problem when hosts don't deallocate the AU views when plug-in window is closed. (Symbiosis deallocates itself when the view is reopened.)
- Cleaned up and fixed a bad #ifndef in Symbiosis.r
- If VST constructor fails (returns 0 or throws), Symbiosis will no longer try to delete the effect (in case it was registered by an "audioMasterCallback"). It is now the VST's responsibility to destruct itself until a pointer has been properly returned from VSTMain.
- Issue 27: many existing VSTGUI 3.x plug-ins will call beginEdit and endEdit with parameter index out of range and this triggered asserts in Symbiosis. For better compatibility these are changed to run-time checks that simply does nothing instead. Although this is caused by very poor design in VSTGUI 3.x IMHO.
Number 1 in particular I feel is quite important. Version 1.29 (last stable, still on download page) and 1.3b (last beta revision) used different techniques to avoid Cocoa name-space collision (or at least minimize the damage). However, if just one Symbiosis wrapped plug-in used a modified Symbiosis.mm and the developer wasn't careful enough to ensure a unique class prefix, it could mess up for everyone else. Really bad.
The new solution of generating classes in run-time ought to be bullet-proof, but of course it needs a bit of testing first.
I would be very happy if everyone could try upgrading their Symbiosis till revision 22 and let me know how it works for you. I am currently using it in the beta of Microtonic 3.1, and when that is released I hope to be able to say that Symbiosis 1.3 is stable and put it on the download page.
Btw, I noticed that we have over 1100 downloads of Symbiosis 1.29. I assume this means a lot of Symbiosis wrapped plug-ins in the future. :)