JUCE doesn't build with latest ARA SDK

ARAChannelArrangement.cpp and ARAChannelArrangement.h no longer exist.

In file included from /Users/rrabien/dev.github/ncontrol/internal/N-Control/V-Text/JuceLibraryCode/include_juce_audio_plugin_client_ARA.cpp:8:
/Users/rrabien/dev.github/ncontrol/modules/juce7/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp:43:10: fatal error: 'ARA_Library/Utilities/ARAChannelArrangement.cpp' file not found
#include <ARA_Library/Utilities/ARAChannelArrangement.cpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Which version of ARA SDK should I be using?

This information can be found in the docs:

1 Like

Thanks, didn’t see that.

Still doesn’t build. Using latest juce on develop, with Projucer build from that tip of develop.

/Users/rrabien/Library/Developer/Xcode/DerivedData/VSTARATest-dlvdugrtqyokviexgiiffrxnwrdr/Build/Intermediates.noindex/VSTARATest.build/Debug/VSTARATest - VST3.build/Script-08CCA8825D8042AE41D2FCE1.sh: line 6: /Users/rrabien/dev.junk/VSTARATest/Builds/MacOSX/build/Debug/juce_vst3_helper: No such file or directory
Command PhaseScriptExecution failed with a nonzero exit code

Projucer needs the following change:

diff --git a/extras/Build/juce_build_tools/utils/juce_ProjectType.h b/extras/Build/juce_build_tools/utils/juce_ProjectType.h
index a5af7bc70..0f99f72df 100644
--- a/extras/Build/juce_build_tools/utils/juce_ProjectType.h
+++ b/extras/Build/juce_build_tools/utils/juce_ProjectType.h
@@ -291,6 +291,7 @@ namespace juce::build_tools
                 case Target::UnityPlugIn:
                 case Target::SharedCodeTarget:
                 case Target::AggregateTarget:
+                case Target::VST3Helper:
                     return true;
 
                 case Target::GUIApp:
@@ -300,7 +301,6 @@ namespace juce::build_tools
                 case Target::unspecified:
                 case Target::LV2PlugIn:
                 case Target::LV2Helper:
-                case Target::VST3Helper:
                     break;
             }

Thank you for reporting. A fix is now part of the 7.0.8 release.

Hi there!

Thanks for the fix. Unfortunately, I run into the same issue building the ARAPluginDemo_VST3 using CMake on MacOS.

My build script in JUCE/ is:

cmake . -B build-debug -G "Unix Makefiles" -DJUCE_BUILD_EXAMPLES=ON -DJUCE_BUILD_EXTRAS=ON
cmake --build build-debug/ --target ARAPluginDemo_VST3 -j 6

I hardcoded the ARA_SDK path into JUCE/CMakeLists.txt. The error I get is:

...
[100%] Building CXX object examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/__/__/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.mm.o
[100%] Building CXX object examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/__/__/modules/juce_audio_plugin_client/juce_audio_plugin_client_LV2.mm.o
[100%] Building CXX object examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/__/__/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.mm.o
/Users/koerthawkins/auphonic/auphonic-plugin-prototype/modules/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp:52:10: fatal error: 'ARA_Library/Utilities/ARAChannelArrangement.cpp' file not found
#include <ARA_Library/Utilities/ARAChannelArrangement.cpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[3]: *** [examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/__/__/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/all] Error 2
make[1]: *** [examples/Plugins/CMakeFiles/ARAPluginDemo_VST3.dir/rule] Error 2
make: *** [ARAPluginDemo_VST3] Error 2

I’m on MacOS 15, using the latest JUCE master commit (51d11a2be6d5c97ccf12b4e5e827006e19f0555a) and the ARA_SDK releases/2.2.0.

Best,
Luke

Instead of hardcoding, you should add the -DJUCE_GLOBAL_ARA_SDK_PATH=/Path/To/ARA_SDK argument to your cmake call. Otherwise JUCE will not be properly configured to build the demo.

You can find the instructions in JUCE/docs/ARA.md.

In terms of best practices I 100% agree with you! That doesn’t fix the issue though.

After some investigation it seems that ARA_Library/Utilities/ARAChannelArrangement.cpp was renamed and refactored to ARA_Library/Utilities/ARAChannelFormat.cpp. With the following change the ARAPluginDemo_VST3 correctly builds on my end:

diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp b/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp
index a6139ee49..06f702f5f 100644
--- a/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp
+++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp
@@ -49,7 +49,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4100)
 #include <ARA_Library/PlugIn/ARAPlug.cpp>
 #include <ARA_Library/Dispatch/ARAPlugInDispatch.cpp>
 #include <ARA_Library/Utilities/ARAPitchInterpretation.cpp>
-#include <ARA_Library/Utilities/ARAChannelArrangement.cpp>
+#include <ARA_Library/Utilities/ARAChannelFormat.cpp>^M

 JUCE_END_IGNORE_WARNINGS_MSVC
 JUCE_END_IGNORE_WARNINGS_GCC_LIKE

I’m not able to reproduce this issue on my system, which is why I thought that it was your configuration causing the issue.

Particularly the ARAChannelFormat.cpp file is suspicious because it’s not present in version 2.2.0 of ARA.

Currently we are still at version 2.2.0 of our ARA support and I don’t expect we’ll be bumping this until a new versioned tag is released. We generally cannot ensure to compile with the ever changing master version of ARA.

Thank you for checking the issue. Indeed, it was another issue on my side.

Sorry for that!