# Current status of Juce plugin support on Mac with cocoa

**URL:** <https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606>\
**Category:** Audio Plugins\
**Created:** [January 29, 2009, 11:44am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606 "2009-01-29T11:44:31Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [January 29, 2009, 11:44am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/1 "2009-01-29T11:44:31Z")

</div>

Hi Guys,

Just wanted to give you my test results regarding the current status of Juce (r680) on mac regarding plugin use.

- AULab 2: Works fine
- Digital Performer 6.02: Display correctly but don’t receive mouse events
- Garage Band 3: Works fine
- Live 7.07:
  - AU: UI not displayed and uses generic AU view (crashes when closing window)
  - VST: Works fine

- Logic 8.02: freeze the host
- Cubase 4.5.2: Works fine but display wrong plugin name and offset in the UI covering Cubase plugin header

I wasn’t able to test on Protools 8 so far because as soon as I add PT SDK xconfig, JuceDemoPlugin doesn’t build. errors on obj C code.  
(juce\_LibrarySource.mm) using PT SDK 7.3(does it require SDK 8.0 ?)

By the way, it can be interresting to add an SDK folder in the audio plugins folder where you will put VST and PT SDK so you won’t need to hack the xcodeproj to remove references to jules own home directory. (for header path and PT xconfig)

---

<div class="post-metadata">

**Author:** ![siedschl](https://avatars.discourse-cdn.com/v4/letter/s/4bbf92/32.png) [@siedschl](https://forum.juce.com/u/siedschl)\
**Post date:** [February 1, 2009, 10:21am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/2 "2009-02-01T10:21:49Z")

</div>

From what I get from the Live FAQ on their website they don’t support Cocoa GUIs. Wonder how long they can carry on with this…

---

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [March 3, 2009, 5:06pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/3 "2009-03-03T17:06:13Z")

</div>

Update:

Logic 8.02: Now works fine  
Digital Performer 6.02: now works fine

Other issues are still present however.

---

<div class="post-metadata">

**Author:** ![jpo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jpo/32/503_2.png) [@jpo](https://forum.juce.com/u/jpo)\
**Post date:** [March 6, 2009, 8:54pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/4 "2009-03-06T20:54:40Z")

</div>

Have you checked with Garageband 5 ? With the last carbon juce, it is causing a strange lag in mouse clicks with a very high cpu load – basically it is unusable. Quite strange. (garageband 3 is working fine , though)

With the mouse offset bug of PT8, those are the two issues that make me want to try to switch to cocoa as soon as possible

---

<div class="post-metadata">

**Author:** ![jpo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jpo/32/503_2.png) [@jpo](https://forum.juce.com/u/jpo)\
**Post date:** [March 9, 2009, 6:00pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/5 "2009-03-09T18:00:55Z")

</div>

A few more hosts tested (juce svn r700):

- Cubase 5: same offset problem, the plugin window is over the cubase toolbar.
- Metro 6.4: another offset problem the plugin window is displayed outside the container window (with an offset of approx 100 pixels)
- Reaper 2.56: the window does not receive mouvemove events (everything else seems to work)
- VSTLord : the plugin window appears on the top-left corner, vstlord says the plugin “is not compatible with composited windows” and quits.
- when running auval , I get many messages from \_NSAutoReleaseNoPool() concerning NSPathStore2, NSCFString , JuceNSWindow\_1\_46\_2
- GarageBand 5 : no mousemove events either.

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 9, 2009, 8:10pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/6 "2009-03-09T20:10:42Z")

</div>

Thanks, I need to get some of these hosts and do some testing.

---

<div class="post-metadata">

**Author:** ![jpo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jpo/32/503_2.png) [@jpo](https://forum.juce.com/u/jpo)\
**Post date:** [March 10, 2009, 5:05pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/7 "2009-03-10T17:05:02Z")

</div>

Some more testing with Pro Tools 8:

- I’m getting the mouse offset bug ! quite rarely, but it definitively happens.
- more annoying: when the plugin window is displayed, it is stealing all keypresses (even menu stuff like Command-Q), nothing reaches protools
- the juce\_malloc call in AudioSampleBuffer(float \*\*, int, int) must absolutely be removed, it is causing major freezes of the whole MacOS UI in protools (like 1sec of complete UI freeze every tens seconds, very impressive that such a big freeze is caused by a small malloc of a few bytes in the Render() callback)

---

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [March 10, 2009, 8:12pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/8 "2009-03-10T20:12:01Z")

</div>

All mallocs should be removed from the audio probes in PR or you will have trouble.

Which Protools SDK are you using btw ?  
I wasn’t able to have the demo plugin be detected by Protools  
Any settings you have modified in the project ?

Thanks,

---

<div class="post-metadata">

**Author:** ![jpo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jpo/32/503_2.png) [@jpo](https://forum.juce.com/u/jpo)\
**Post date:** [March 10, 2009, 8:44pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/9 "2009-03-10T20:44:54Z")

</div>

I’m using the PT 7.3 SDK (I guess that switching to version 8 SDK means loosing the compatibility with PT 7.3 and 7.4)

To be honest I did not manage to build the juce demo rtas , I only built my own plugin (I’m not using xcode for the build so I’m not very confortable with it) – I just used my own settings that worked with the old carbon juce. If you are getting error 7400 “not enough resources” it is indeed the resource file that is missing (lost my morning on this one)

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [March 12, 2009, 2:44pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/10 "2009-03-12T14:44:21Z")

</div>

> [@jpo](#):
>
> - the juce\_malloc call in AudioSampleBuffer(float \*\*, int, int) must absolutely be removed, it is causing major freezes of the whole MacOS UI in protools (like 1sec of complete UI freeze every tens seconds, very impressive that such a big freeze is caused by a small malloc of a few bytes in the Render() callback)

Similar behaviour verified compiling against PT SDK 8.0…

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 13, 2009, 4:07pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/11 "2009-03-13T16:07:26Z")

</div>

> [@](#):
>
> - the juce\_malloc call in AudioSampleBuffer(float \*\*, int, int) must absolutely be removed, it is causing major freezes of the whole MacOS UI in protools (like 1sec of complete UI freeze every tens seconds, very impressive that such a big freeze is caused by a small malloc of a few bytes in the Render() callback)

I’ll sort that out…

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 13, 2009, 4:23pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/12 "2009-03-13T16:23:51Z")

</div>

Ok, I’ve checked in a hasty fix for the AudioSampleBuffer now - please let me know if it works!

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [March 16, 2009, 8:01am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/13 "2009-03-16T08:01:45Z")

</div>

I tried the new fix and I’m getting a constant high CPU usage, instead of the “GUI freezing” spikes. The GUI does not freeze, though, but the plug-in is too much CPU consuming compared to the “Carbon” one

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 16, 2009, 9:26am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/14 "2009-03-16T09:26:23Z")

</div>

> [@yfede](#):
>
> I tried the new fix and I’m getting a constant high CPU usage, instead of the “GUI freezing” spikes. The GUI does not freeze, though, but the plug-in is too much CPU consuming compared to the “Carbon” one

well, any idea what’s using the cpu? Is it the audio thread, or the GUI? Obviously the GUI’s completely different now, but the audio thread should be pretty much identical…

---

<div class="post-metadata">

**Author:** ![otristan](https://avatars.discourse-cdn.com/v4/letter/o/f0a364/32.png) [@otristan](https://forum.juce.com/u/otristan)\
**Post date:** [March 16, 2009, 10:16am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/15 "2009-03-16T10:16:10Z")

</div>

Just in case, if the juce audio plugin use AsyncUpdater for its parameter update, it mallocs so it could lead to some CPU spike in RTAS.

---

<div class="post-metadata">

**Author:** ![jpo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jpo/32/503_2.png) [@jpo](https://forum.juce.com/u/jpo)\
**Post date:** [March 16, 2009, 11:56am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/16 "2009-03-16T11:56:12Z")

</div>

I have just tested juce r702 and I am no more getting UI freezes, so for me that issue is fixed. I compared also CPU usage with the carbon version in Pro Tools, and could not find any significant difference.

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [March 17, 2009, 2:34pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/17 "2009-03-17T14:34:50Z")

</div>

Correct behaviour confirmed here!  
The excess of CPU was somehow due do the fact that the wrappers in the tip include juce\_amalgamated.h, while I’m using JUCE as a library within my plug-in project, thus the correct header to include must be juce.h.

Done that, everything’s fine now.

…is there a planned or guessed release date for version 1.47? :roll:

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 17, 2009, 2:46pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/18 "2009-03-17T14:46:03Z")

</div>

> [@](#):
>
> The excess of CPU was somehow due do the fact that the wrappers in the tip include juce\_amalgamated.h, while I’m using JUCE as a library within my plug-in project, thus the correct header to include must be juce.h.

?? It shouldn’t make any difference at all - the headers are exactly the same either way. Maybe your project just needed a good clean rebuild?

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [March 17, 2009, 3:20pm UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/19 "2009-03-17T15:20:20Z")

</div>

[quote=“jules”]  
?? It shouldn’t make any difference at all - the headers are exactly the same either way. Maybe your project just needed a good clean rebuild?[/quote]

Don’t know… if it happens again (hope not), I will try to figure out better what was happening.

What about the release of the next version?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 18, 2009, 11:49am UTC](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606/20 "2009-03-18T11:49:45Z")

</div>

Ah release dates…  
In the case of juce, picking a point to release it is particularly difficult, as the whole thing is just an ongoing process. Maybe I should just do one now - the tip seems very stable at the moment…

[Next page](https://forum.juce.com/t/current-status-of-juce-plugin-support-on-mac-with-cocoa/3606.md?page=2)
