Sushi build error for audio_graph_controller

Hi, I am trying to build sushi for RPi4 and hifhberry adc dac pro. I cloned the repo and submodules (0.11.0) and I’m using the elkpi-sdk to cross-compile. After generating, running make in build/debug gives error when trying to build audio_graph_controller.

The command I ran to generate:
./generate --cmake-args="-DWITH_JACK=off -DWITH_VST2=off -DWITH_LV2=off -DWITH_LV2_MDA_TESTS=off -DWITH_RPC_INTERFACE=off -DWITH_UNIT_TESTS=off"

Error output:
/Documents/Elk/sushi/src/engine/controller/audio_graph_controller.cpp: In member function 'virtual sushi::ext::ControlStatus sushi::engine::controller_impl::AudioGraphController::create_track(const string&, int)':
/Documents/Elk/sushi/src/engine/controller/audio_graph_controller.cpp:196:59: error: class template argument deduction failed:
auto event = new LambdaEvent(lambda, IMMEDIATE_PROCESS);
^
/Documents/Elk/sushi/src/engine/controller/audio_graph_controller.cpp:196:59: error: no matching function for call to 'LambdaEvent()'
In file included from /Documents/Elk/sushi/src/engine/base_event_dispatcher.h:25,
from /Documents/Elk/sushi/src/engine/base_engine.h:32,
from /Documents/Elk/sushi/src/engine/controller/audio_graph_controller.h:25,
from /Documents/Elk/sushi/src/engine/controller/audio_graph_controller.cpp:21:
/Documents/Elk/sushi/src/library/event.h:380:5: note: candidate: 'template<class LambdaType> LambdaEvent(LambdaType, sushi::Time)-> sushi::LambdaEvent<LambdaType>'
LambdaEvent(LambdaType work_lambda,
^~~~~~~~~~~
/Documents/Elk/sushi/src/library/event.h:380:5: note: template argument deduction/substitution failed:
/Documents/Elk/sushi/src/engine/controller/audio_graph_controller.cpp:196:59: note: candidate expects 2 arguments, 0 provided
auto event = new LambdaEvent(lambda, IMMEDIATE_PROCESS);

More repetitive error on trying to find LambdaEvent
Any ideas on solving this error…

Hi!

Most likely, your compiler does not support template argument deduction, which we use for that functionality.

Check which compilers and version we support for Sushi and make use you use one of those.
From the Readme: “Sushi requires a compiler with support for C++17 features. The recommended compiler is GCC version 9 or higher”.

I am certain from the error message that using the correct compiler would solve this, but do write back if you hit another snag, best of luck!

Best regards,
Ilias of Elk

Hi @beeb,
sorry our bad: we did not update the cross-compiling SDK with the latest version, so that is why you are getting that error.

You should be able to build a previous release of SUSHI but we’ll upload soon an updated version.

Hi @beeb,
I have updated the SDK on the elkpi-sdk 0.9.0 release page. You can download and try it.

Hi thanks for the reply.
My bad here as well, the latest toolchain installer link on (GitHub - elk-audio/elkpi-sdk: Yocto cross-compiling toolchains for Elk on Raspberry Pi 3 32 bit) was for pi3. It was that toolchain having errors. Just tried the pi4 toolchain and it looks pretty promising so thank you :slight_smile: