Yosemite and JUCE plugins


#1

It seems that older JUCE plugins don not work with Yosemite. Ableton warns with following message:

"Certain 32-bit VST plug-ins that make use of outdated versions of the JUCE framework seem to have drawing problems with the plug-in GUI. The symptoms are: completely empty plug-in windows, misaligned UI elements, not being able to close the plug-in window."

Did someone figure out what the problem is and is there a way to patch old JUCE plugins and fix the issue without upgrading to the latest tip?


#2

Nice of Ableton to throw Juce under the bus...

 

I'll be checking my beta plugins in the next few days in Yosemite. I have built them using Juce version 3.0.5. I've heard reports of my current releases (built with Juce 1.53) having issues in Live + Yosemite.


#3

I don't know what they consider outdated, but our plug-ins all work fine in Yosemite. I didn't notice anything problems in Ableton Live either, although I didn't test very thoroughly...


#4

In my tests all VST 32bit JUCE plugins did not work. From very old to around 2 years old. AU seems to work without any issues. Updating to the latest tip fixes all problems. But it's hard to update older plugins before JUCE had the module structure. It would be great to have a fix that does not need to update the library.


#5

Anymore information available on this? Having similar problems with a project that uses old JUCE components. Is the only solution to update to the newer stuff?


#6

Apparently you have to update to juce 3.x , because it requires the support of the "hasCockosViewAsConfig" canDo and this is not a small change. At the very least it would require you to add this canDo and update the juce_Vst_Wrapper.mm to the latest version


#7

Sometime during the 3.0.5 revision of Juce, a change was made that allows for Yosemite compatibility. My older beta plugins were built with an older version of 3.0.5, and have the GUI bugs in Yosemite. My latest betas are using a more recent revision of 3.0.5, and work great in Yosemite. I had to make a fair number of code changes to get my older code (that was built using Juce 1.5.3) to work with 3.0.5, but I had to do this for AAX anyway.


Sean Costello


#8

Hi!

I have a similar problem as described on the Ableton website that an empty (black) plugin window remains when trying to close the plugin window of my 32 bit VST plugin used in Cubase 7.5 or Cubase 7.0 on Yosemite.

I just tried the JUCE demo plugin from JUCE 3.1.1 which had the same behaviour

I could not reproduce that issue with Ableton Live, so I am not sure if it is the same problem or if it is a different one.

Can anybody confirm this and does anybody know how this could be fixed?

 

Best Regards,

Gregor

 

 

 


#9

I can confirm the window issue still exists withing 32-bit Cubase 7.x, at least with the 3.0.5 Juce framework I am using (I have to freeze at some point during the development process, as many of the Juce updates break my builds). The 3.0.5 Juce-built plugins work well within Ableton Live 32-bit.

 

Pretty much every complaint about the 32-bit VSTs I have received comes from Ableton users, for what that is worth. My guess is that the Cubase users are largely using 64-bit builds, as the 32-bit wrapper in Cubase seems more robust than other wrappers.

 

Sean Costello


#10

Cubase 7 users should not update to Yosemite at the moment. There is a cubase 7 compatibility update for Feb 2015 planned:

https://www.steinberg.net/nc/en/support/knowledgebase_new/show_details/kb_show/steinberg-product-compatibility-info-regarding-mac-os-x-1010-yosemite.html


#11

Hi!

 

On this page, Steinberg announces Cubase 8 to be compatible with Yosemite:

https://www.steinberg.net/nc/en/support/knowledgebase_new/show_details/kb_show/steinberg-product-compatibility-info-regarding-mac-os-x-1010-yosemite.html

The problem of the remaining black windows occurs in Cubase 7 and Cubase 8. So I am not sure if this issue is something that will be resolved with the next Cubase update.

 

I found a solution that avoids the remaining black windows, but I am not sure if it will cause any other problems:

I removed the line:

removeWindowHidingHooks (comp);

in file juce_VST_Wrapper.mm in function detachComponentFromWindowRef()

 

On Yosemite the window now closes correctly and on Mavericks it still works as before.

 

Can anybody confirm if this is a good solution or if it will cause any problems?

 

 

Best Regards,

Gregor

 

 

 

 

 

 

 

 

 

 


#12

+1 on the removeWindowHidingHooks (comp);

I have users with Cubase 7 32 bit issues as well (OS X) and I would like to know if there's any _official_ fix for this yet.. :)


#13

shouldn't this be fixed inside juce?


#14

I wouldn't have gone to the trouble of writing it if it wasn't needed for some reason, so taking it away will certainly break something!

But of course it may be something that should be disabled for a particular OS version or DAW.. Is this something that we know to be specific to only that version of cubase?


#15

 

I also have the window problem. Closing the plugin's window leaves a blank white window that does not respond to its close button. 

This with the latest Juce tip on 10.10.2, with 32-bit Live 9.1.7. 64-bit Live does not exhibit the problem. 

Removing the call to removeWindowHidingHooks (comp) does not affect the behavior. 

 


#16

My current fix for the orphan window bug is to leave out the event loop code that is run in JuceVSTWrapper.mm on closing. change "if (needToRunMessageLoop)" to "if(0)" or something. 

The comments say that leaving out this code causes crashes in Live when you delete the plugin with its window open. I'm guessing this was true for some version of OS / Live but in my testing I actually found the opposite. I tested three setups with Live: OS 10.10.2 / Live 9.1.7, and OS 10.6.8 / Live 9.0.6 and Live 8. All in 32-bit VST because that's where the bug was happening. 

Before leaving out this code, on 10.10.2 / 9.1.7, Live was crashing often on editor deletion. The crash was always occurring in one of the runDispatchLoopUntil() calls. runDispatchLoopUntil() would get called successfully a various number of times, sometimes as few as 3. But when the crash occurred it always entered runDispatchLoopUntil() without returning.

So I tried leaving out this Cocoa cleanup stuff and since then I have seen no crashes. I am also not seeing any of the Cocoa views or Windows or any Components leaking. 

I have also tried the new code in a bunch of other hosts including Reaper on both 10.10.2 and 10.6.8 and it seems to work across the board.

[EDIT]

Hurriedly forgot to mention actual orphan window fix part, which is to remove [hostWindow retain] from attachComponentToWindowRef (Component* comp, void* parentWindowOrView, bool isNSView); in JuceVSTWrapper.mm. 

 

 

 

 


#17

Having the same issue, Cubase Elements 7 (trial version) on OS X 10.10.

Getting a black window when trying to close it in cubase. The only thing that seem to make the window close is to comment out removeWindowHidingHooks() in detachComponentFromWindowRef but that makes the plugin to leak mem each time the window is closed... The plugin does not leak mem when keeping removeWindowHidingHooks() and opening/closing the plugin in Ableton Live several times.

No problems with Cubase 7 + OS X 10.9 according to one of our beta testers with unchanged code in juce_VST_Wrapper.mm though...


#18

This is still happening on latest juce version from git..  Proposed 'solutions' don't work or leak.

Jules could you help us? pleeasee

 


#19

Also received some user feedback that the problem exists in Cubase 6 32bit on Yosemite. We have different workarounds here but no real solution. It would be great to see something stable that works in the tip. I think everyone will runs into this sooner or later.


#20

Whats your OSX Base SDK and OSX Compatibility version, which Xcode Version, latest Tip?

I'm asking, because i never had this issue yet (maybe just luck)

I use Default SDK, OSX compatibility Version 10.6, compiled on Yosemite with latest Xcode