64 bit plugins -what support is available in Juce?

112 posts / 0 new
Last post
valhallasound
Offline
Last seen: 1 week 19 hours ago
Joined: 9 Apr 2008 - 01:30
64 bit plugins -what support is available in Juce?

Hi all:

Apple just announced Logic 9.1, which supports 64 bit plugins natively, and in 64-bit mode runs 32 bit plugins via a bridge. Other hosts are working on 64 bit versions of their hosts.

So...how do we write 64-bit plugins in Juce? The 64-bit processing doesn't seem that confusing (I can figure out where to replace float with double, or come up with a MY_FLOAT definition), but how do we specify which render function to call? Obviously, we need to support both 32 bit and 64 bit plugins for the time being. And do the various setParameter() and getParameter() functions need to be 64 bit?

Feel free to point me to other threads that discuss this, if need be. The whole 64 bit thing seems like a pain to deal with, as very few DSP operations need precision beyond 32 bit floats (low frequency resonant/notch filters and some level detectors being the main exceptions I can think up). But it looks unavoidable at this point.

Thanks,

Sean Costello

otristan
Offline
Last seen: 7 hours 24 min ago
Joined: 3 Mar 2007 - 14:03
Re: 64 bit plugins -what support is available in Juce?

64bits plugins are not 64bits processing plugins.
They just run in 64bits memory address model

Olivier

Mikey
Offline
Last seen: 1 week 5 days ago
Joined: 20 Feb 2009 - 18:36
Re: 64 bit plugins -what support is available in Juce?

Yes, I just downloaded the new Logic and I must say that 32-bit bridge app is awkward. So I need to build a 64-bit version. So far I'm stumbling. I was successfully building a 32-bit Cocoa version. It appears that I need to strip out the Carbon support in order to go 64. If any of us make discoveries (or have prior knowledge) about doing that, let's share it here.

jules
Online
Last seen: 6 min 13 sec ago
Joined: 29 Apr 2013 - 18:37
Re: 64 bit plugins -what support is available in Juce?

It's just a setting in XCode. Set it to build a 32/64-bit binary. Simple as that.

Mikey
Offline
Last seen: 1 week 5 days ago
Joined: 20 Feb 2009 - 18:36
Re: 64 bit plugins -what support is available in Juce?

jules wrote:
It's just a setting in XCode. Set it to build a 32/64-bit binary. Simple as that.

For you maybe. It took a while to get a successful link. The key seems to be the 'Build Active Architecture Only" checkbox. It must be checked.

But even after that, there's a problem. If I launch Logic 9.1 in 32 bit mode,, a 32/64 plug is verified by AUval and loads and runs properly. But if I launch Logic in 64-bit mode, Auval gives me the following errors:

ERROR: Cannot get Component's Name strings
ERROR: Error from retrieving Component Version: 4294967246

Any ideas?

otristan
Offline
Last seen: 7 hours 24 min ago
Joined: 3 Mar 2007 - 14:03
Re: 64 bit plugins -what support is available in Juce?

Should'nt you add stuff to the "Other Rez Flags" ?

Olivier

Mikey
Offline
Last seen: 1 week 5 days ago
Joined: 20 Feb 2009 - 18:36
Re: 64 bit plugins -what support is available in Juce?

otristan wrote:
Should'nt you add stuff to the "Other Rez Flags" ?

Looks quite possible, when I see the current values:

-d ppc_$ppc -d i386_$i386 -I / -I /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers

My problem is that I'm pretty much a straight DSP type and I have only the vaguest clue what Rez does and how it works. I'm trying to get schooled, but my earliest tweaks to these flags did nothing.

jules
Online
Last seen: 6 min 13 sec ago
Joined: 29 Apr 2013 - 18:37
Re: 64 bit plugins -what support is available in Juce?

Quote:
The key seems to be the 'Build Active Architecture Only" checkbox. It must be checked.

Surely checking that box would override the build setting and just do a normal 32-bit one...?

Mikey
Offline
Last seen: 1 week 5 days ago
Joined: 20 Feb 2009 - 18:36
Re: 64 bit plugins -what support is available in Juce?

jules wrote:
Quote:
The key seems to be the 'Build Active Architecture Only" checkbox. It must be checked.

Surely checking that box would override the build setting and just do a normal 32-bit one...?


That would have been my initial thought, but I can't build Juce 1.50 if I don't set that flag. Here are my settings:
Architectures: 32/64-bit Universal
Base SDK: Mac OSX 10.5
Valid Architectures: i386 ppc ppc64 ppc7400 ppc970 x86-64

If Build Active Architecture Only is checked, it builds
If it's unchecked, I get five errors, beginning with these two:
juce_mac_NSViewComponentPeer.mm:1502: error: 'kUIModeAllSuppressed' was not declared in this scope
juce_mac_NSViewComponentPeer.mm:1502: error: 'kUIOptionAutoShowMenuBar' was not declared in this scope

The value (0 or 1) of JUCE_SUPPORT_CARBON has no effect here.

jules
Online
Last seen: 6 min 13 sec ago
Joined: 29 Apr 2013 - 18:37
Re: 64 bit plugins -what support is available in Juce?

You're probably linking to an old version of the SDK? Try using the 10.6 SDK.

I can certainly build 64-bit binaries here with no problem, so there's no problem with the code itself.

Mikey
Offline
Last seen: 1 week 5 days ago
Joined: 20 Feb 2009 - 18:36
Re: 64 bit plugins -what support is available in Juce?

Jules,
I'm now using the 10.6 SDK under XCode 3.2.1. No matter what I do, I can't build the Juce library with 64-bit Intel code. I've gone so far as to re-download the juce package, just to make sure I hadn't messed anything up. I even booted my system (8-core Nehalem) up with a 64-bit kernel. Nothing. Nada.

I always have five symbols undefined. One of those is kUIModeAllSuppressed. I have found that this and the other symbols are defined in MacApplication.h, which is buried deep in the Carbon framework. But this file isn't included anywhere in the juce library build.

Does your success in building 64-bit extend to the library, or are you simply including the amalgamated file?

FWIW, I have other libraries that I use in these plugs. No problem building them in 32/64.

Pages