Strange plugins behaviour on mac


#1

Hi Jules,

I encountered a strange problem with my plugins under mac (VST and AU).

Let’s say I created 2 plugins (starting from your demo) and I want to use them both inside a project in Ableton Live 8.0.2.
The first one I load inside my project works fine, everything is as it as to be.
For the second one I load inside the project, I get the following problems.

In the DemoEditorComponent :
getFilter()->setParameter : nothing happens anymore
getFilter()->(any of my public variable name) = x : nothing happens anymore
getFilter()->setParameterNotifyingHost : still works fine!!
ComboBox : I can’t select any items which position is outside the plugin UI (image a ComboBox on the bottom of the UI, the items list can go below the UI)

In the DemoJuceFilter :
sendChangeMessage() : nothing happens anymore

I thought this was about the obj-c class name, but the 2 names are different as long as the plugin 4 chars codes.
The problem is the same for vst version and au. I didn’t make the rtas yet.
The same things happens even if I load as first plugin your original demo.

Any ideas?
Thanks in advance,
Andrea


#2

Definitely sounds like the obj-c naming clash. Did you also set JUCE_ObjCExtraSuffix differently?


#3

Hi Jules,

thanks for the reply.

What is the ObjCExtraSuffix?
Where do I have to set it?
I can’t see any #define JUCE_ObjCExtraSuffix or something in the JucePluginCharacteristics.h


#4

Yeah, it’s not in the headers, do a search for it to find out more. You’d need to define it before you include the amalgamated cpp file.


#5

Ok Jules,

I’have found a definition inside juce_AppConfig.h

/*  Because the host may be loading juce plugins that contain the same symbols as itself,
    there's endless opportunity for the dynamic loader to bugger up . So, we'll make the host
    use a different namespace and obj-C classnames, to try to avoid this as much as possible.
*/
#define JUCE_ObjCExtraSuffix JuceDemoHost
#define JUCE_NAMESPACE JuceDemoHost

Tonite I’ll made some tests, changing these two define for every plugin.

Thanks,
Andrea


#6

Ok Jules everything works now! Thanks
I add a define for JUCE_ObjCExtraSuffix in the juce_AppConfig.h of every plugin and now they seems to work correctly.

The only one problem remains now is, how to define different JUCE_ObjCExtraSuffix for VST version and AU?
Is there any macro that I can use?
If I load the vst version of a plugin and then its AU one, the first one works and the second no.


#7

Yeah, that’s discussed on another thread somewhere… As far as I know, there’s no possible solution for that, other than building separate binaries for AU and VST.


#8

Hi Jules,

about the ObjCExtraSuffix.
I see you check if it is defined into juce_IncludeCharacteristics.h,
where you suggest to define it in JucePluginCharacteristics.h file.

If I do this the problems with others juce plugins remains.
I have to define it again in the juce_AppConfig.h, then everything works fine.

I’m telling you this so maybe you can move the define check in another position and
suggest to define the extra suffix in juce_AppConfig.h instead of JucePluginCharacteristics.h.

Andrea


#9

Good point, thanks, I’ll make that clearer.