Why is 32-bit the default for Windows JUCE projects?


#1

As the title says - the first thing I have to go and do every time I make a new Projucer project (or open a default one like the plugin host example) is change the build from 32-bit to 64-bit. JUCE defaults to 64-bit for Linux and macOS, why not Windows? It’s 2016, and I know exactly zero people with a 32-bit processor in their PC.

Additionally, for plugins a lot of DAWs won’t even load 32-bit plugins anymore, which could very well put off new folks compiling the example plugins who might not be able to get them to load.


#2

Same question here…


#3

Thirded. It’s quite annoying.

(Almost as annoying as the way that if you aren’t on the very latest OSX, then when you launch the default project without changing the settings, it won’t run because of the OS version compatibility settings defaults!!)


#4

your friends != real world costumers

I think there exists also a 32bit version of windows 10 :wink:

32bit has one major advantage over 64bit, i can run on both - 32bit and 64bit systems.


#5

I think they addressed this specific problem with this recent commit on develop:


#6

Oh thank god for that. :slight_smile: Cheers whoever did that!


#7

I’d say the majority of juce developers are on 64-bit machines, and likewise they foremost develop 64-bit stuff. That said, of course some will eventually make 32-bit versions of some of their stuff, but the deafult settings for all samples and demos should pref be 64 bit.


#8

Yes, I’m aware of this and know there’s a decent population of musicians who use ancient PCs because that’s what they’re comfortable with. If there’s some customer who demands running Cubase 4 in Windows XP for whatever reason and a JUCE developer chooses to support them, that’s their choice and that’s fine - I’m not suggesting JUCE drop 32-bit Windows support and I don’t think it should by any means. That’s not really what I’m talking about in this post. I’m saying that the default architecture for VS2010+ projects should be 64-bit.

While this is the true for standalone apps, it gets more complex for audio plugins. The architecture of the DAW needs to be the same as the architecture of the plugin in almost all cases. In fact I’m not aware of an exception where a DAW has a jbridge-like 32-64 bridge built in.

Like I said, my main concerns are that this can cause issues for people who might be trying out JUCE for the first time and can’t figure out why their 32-bit default compiled plugin won’t load in their 64-bit DAW. Also, it’s annoying for us developers who are likely overwhelmingly on 64-bit PCs.

Another interesting idea would be to choose based on the user’s current architecture at target creation time in the Projucer. I.e. if the user is running 64-bit Windows, when creating a new VS target choose 64-bit or vice versa. But that’s definitely a really elaborate feature for something most people won’t even notice vs. just making the modern 64-bit architecture the default.


#9

Hmmm tough one. I agree that standalone apps should be 32-bit as they will run on all systems. Plug-Ins: I feel that it’s probably the time to move to 64-bit as most developers will be testing in 64-bit hosts and using a bridge makes debugging pretty difficult.

The one exception is the standalone host app. If we are moving to 64-bit plug-ins then the host app also needs to be 64-bit.


#10

While we’re at it, it would also be nice if the debug settings were prepared for Edit & Continue.


#11

Well - the alternative would be a new step in the New Project wizard where it asked you what you wanted for the critical build settings??


#12

And it would be super-helpful actually if the Host App built two binaries, with different names PluginHost32bit and PluginHost64bit. It would have saved me going round in circles a lot early on, and probably would still late at night when I can’t work out why the debugger won’t work or a plugin won’t scan :slight_smile: