Hi out there,
I recently discovered the ARA integration in the JUCE 7 release. Incredible, thx to the JUCE team at this point!
Unfortunately I can’t build, or more specifically link the ARAPluginDemo
. I set up a small audio plugin project with all the plugin code in Source/ARAPluginDemo.h
(yes, that’s the original file) and createPluginFilter()
and createARAFactory()
in Source/main.cpp
. The libraries build, however the VST3 target produces a load of linker errors, all located in the same file in the ARA_SDK
.
Here are some details:
- I set up an audio plugin with the following
CMakeLists.txt
- note that there’s only 1 JUCE module linked. linking all JUCE modules in
target_link_libraries
did not solve the issue though
- note that there’s only 1 JUCE module linked. linking all JUCE modules in
cmake_minimum_required(VERSION 3.15)
project(ARA_PLUGIN_EXAMPLE VERSION 0.0.1)
add_subdirectory(JUCE)
juce_set_ara_sdk_path("ARA_SDK/")
juce_add_plugin(ARAPluginExample
PLUGIN_MANUFACTURER_CODE Meee
PLUGIN_CODE MARA
IS_ARA_EFFECT TRUE
FORMATS VST3
PRODUCT_NAME "My ARA Plugin")
target_sources(ARAPluginExample
PRIVATE
Source/main.cpp
Source/ARAPluginDemo.h)
target_compile_definitions(ARAPluginExample
PUBLIC
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0
JUCE_VST3_CAN_REPLACE_VST2=0)
target_link_libraries(ARAPluginExample
PRIVATE
juce::juce_audio_utils
PUBLIC
juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags)
- Here’s how my
main.cpp
looks:
#include "ARAPluginDemo.h"
//==============================================================================
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
return new ARADemoPluginAudioProcessor();
}
#if JucePlugin_Enable_ARA
const ARA::ARAFactory* JUCE_CALLTYPE createARAFactory()
{
return juce::ARADocumentControllerSpecialisation::createARAFactory<ARADemoPluginDocumentControllerSpecialisation>();
}
#endif
- the
Source/ARAPluginDemo.h
is exactly the same as theJUCE/examples/Plugins/ARAPluginDemo.h
file, only addedusing namespace juce
and the following includes:
#include <juce_audio_basics/juce_audio_basics.h>
#include <juce_audio_devices/juce_audio_devices.h>
#include <juce_audio_formats/juce_audio_formats.h>
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include <juce_audio_processors/juce_audio_processors.h>
#include <juce_audio_utils/juce_audio_utils.h>
#include <juce_core/juce_core.h>
#include <juce_data_structures/juce_data_structures.h>
#include <juce_events/juce_events.h>
#include <juce_graphics/juce_graphics.h>
#include <juce_gui_basics/juce_gui_basics.h>
#include <juce_gui_extra/juce_gui_extra.h>
#include <juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp>
- I get a whole lot of linker errors, all located in
.../ARA_SDK/ARA_Library/PlugIn/ARAPlug.cpp
. Here are some examples
/usr/bin/ld: ARAPluginExample_artefacts/Debug/libMy ARA Plugin_SharedCode.a(main.cpp.o): in function `ARA::PlugIn::DocumentController::createPlaybackRegion(ARA::ARAAudioModificationRefMarkupType*, ARA::ARAPlaybackRegionHostRefMarkupType*, ARA::SizedStructPtr<ARA::ARAPlaybackRegionProperties>)':
/home/koerthawkins/auphonic/ara-juce-7-plugin/ARA_SDK/ARA_Library/PlugIn/ARAPlug.cpp:1647: undefined reference to `ARAHandleAssert'
/usr/bin/ld: ARAPluginExample_artefacts/Debug/libMy ARA Plugin_SharedCode.a(main.cpp.o): in function `ARA::PlugIn::DocumentController::updatePlaybackRegionProperties(ARA::ARAPlaybackRegionRefMarkupType*, ARA::SizedStructPtr<ARA::ARAPlaybackRegionProperties>)':
/home/koerthawkins/auphonic/ara-juce-7-plugin/ARA_SDK/ARA_Library/PlugIn/ARAPlug.cpp:1668: undefined reference to `ARAValidationFailure'
/usr/bin/ld: /home/koerthawkins/auphonic/ara-juce-7-plugin/ARA_SDK/ARA_Library/PlugIn/ARAPlug.cpp:1669: undefined reference to `ARAValidationFailure'
/usr/bin/ld: /home/koerthawkins/auphonic/ara-juce-7-plugin/ARA_SDK/ARA_Library/PlugIn/ARAPlug.cpp:1670: undefined reference to `ARAValidationFailure'
- my setup:
- Ubuntu with kernel 5.4.0-122-generic
- cmake version 3.24.0-rc4
- gcc version 9.4.0
-
ARA_SDK
atreleases/2.1.0
-
JUCE
at master branch
FYI, I also can not create the ARAPluginDemo
makefile target. I reported that in this issue: [Bug]: ARAPluginDemo not available as makefile target · Issue #1099 · juce-framework/JUCE · GitHub
Any help appreciated!
BR,
Lukas