Guidance building for Bela platform

@a.harker yes, convolution tools is on the way out. I’m about to attack transients again (on an allocator rampage), and will fold in the changes we did a while ago.

@jarm I think it’s only the transients objects that will be broken. I don’t think they’ll run happily on Bela in any case at the moment because they’re very CPU heavy (I plan to try and improve this). My advice would be to simply remove them from the build altogether.

You can remove the targets by going to build/__deps/flucoma-core-src/FlucomaClients.cmake and commenting out all the add_client calls with transient stuff (lines 118, 119, 138, 139 on my working branch). Then re-run CMake.

1 Like

On the public version SineExtraction.hpp also includes ConvolutionTools.hpp, but it doesn’t actually use it…

Does it still? :man_facepalming: I keep meaning to take it out. Yeah, that include can just be zapped (although Sines might also be a bit chunky for the Bela, we’ll see).

Commented out the Transient objects, removed the include of ConvolutionTools in SineExtraction, and it finally built:

Haven’t had time to test yet!

4 Likes

Woohoo! Thanks so much for persevering!

2 Likes

@jarm let us know how it actually performs - this is a beautiful new set of possibilities you are opening there! Thanks as usual to @a.harker for his benevolent help :slight_smile:

As an update I’ve been working on SIMDSupport.hpp today and I have a local copy that is both aarch64 and arm happy. I’ve pushed all the 64 bit stuff to HISSTools_Library already, but for the 32 bit stuff I want to neaten up a bit. Anyway - that should now be more reliable for various arm situations pretty soon.

3 Likes

Finally given this a quick go, and it seems that Bela’s libstdc++ isn’t up to date enough for Flucoma:

*** ERROR: dlopen '/usr/local/share/SuperCollider/Extensions/FluidCorpusManipulation/Plugins/FluidAmpFeature.so' err '/usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /usr/local/share/SuperCollider/Extensions/FluidCorpusManipulation/Plugins/FluidAmpFeature.so)'
Server 'localhost' exited with exit code 0.
root@bela:~# ls /usr/lib/arm-linux-gnueabihf/libstd*
/usr/lib/arm-linux-gnueabihf/libstdc++.so.6
/usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.22
root@bela:/usr/lib/arm-linux-gnueabihf# strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBC_2.4
GLIBC_2.18
GLIBC_2.17
GLIBCXX_DEBUG_MESSAGE_LENGTH
root@bela:/usr/lib/arm-linux-gnueabihf# strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.22 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBC_2.4
GLIBC_2.18
GLIBC_2.17
GLIBCXX_DEBUG_MESSAGE_LENGTH

Edit: turns out I was on an old Bela image, updating to Release v0.5.0alpha2 EXPERIMENTAL - DO NOT USE THIS IMAGE · BelaPlatform/bela-image-builder · GitHub gives:

root@bela:~/flucoma-sc-bela-jul22/release-packaging# strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.4
GLIBC_2.29
GLIBC_2.6
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBCXX_DEBUG_MESSAGE_LENGTH

And the above error goes away

Ok, looks like we have liftoff! Tried the following:

s = Server.default;

s.options.numAnalogInChannels = 2; // can only be 2, 4 or 8
s.options.numAnalogOutChannels = 2;
s.options.numDigitalChannels = 16;
s.options.maxLogins = 4;  	   // set max number of clients
s.options.bindAddress = "0.0.0.0"; // allow anyone on the network connect to this server

s.options.blockSize = 256;
s.options.numInputBusChannels = 2;
s.options.numOutputBusChannels = 2;

s.waitForBoot{
	SynthDef('FluidPitchTest', {
		var freq, conf;
		var in = SinOsc.ar(440);//SoundIn.ar(0);
		# freq, conf = FluidPitch.kr(in,window:1024);
		freq.poll(0.5);
		conf.poll(0.5);
	}).add;

	s.sync;

	f = Synth('FluidPitchTest');
};

ServerQuit.add({ 0.exit }); // quit if the button is pressed

Which outputs:

UGen(OutputProxy): 442.103
UGen(OutputProxy): 0.939491
UGen(OutputProxy): 442.104
UGen(OutputProxy): 0.939481

This consumes around 32% CPU, compared to 8% without the SynthDef or Synth. It is sensitive to block size and window size: block size <256 seems to be nothing but underruns for FluidPitch at least.

I’m going to keep puttering about on this, if anyone fancies cooking up a little benchmark script that checks across the various UGens or something I would be happy to run it.

FYI, on the latest version of Bela you will need to copy your installation to the following directory (symbolic links will fail):

cp -r /path/to/release-packaging/FluidCorpusManipulation /usr/share/SuperCollider/Extensions/FluidCorpusManipulation

I am starting to document things here: GitHub - jarmitage/flucoma-bela: Experiments combining Flucoma with Bela

1 Like

Great – thanks for pushing through. Delighted that it builds and runs, though 32% is pretty chunky :cry:

Which branch are you on? What’s on dev at the moment may give an improvement over main, as it makes better (i.e. some) use of the SC real-time allocator, and also updates the HISSTools dependency to take advantage of SIMD fixes (and gets rid of that rougue header from before).

1 Like

Oh nice, sounds like it might be worth another build then! I’m still currently on main from whatever state things were in in July. Anything else coming in the very near future that I should wait for?

I am also kinda curious about compiling the flucoma core and using that in Bela C++ programs, and also trying to get the Pd version going on Bela too… Fun times ahead :sweat_smile:

I am trying to update the builds based on flucoma-sc dev branch:

[  8%] Building CXX object CMakeFiles/FluidBufMelBands.dir/generated_sources/FluidBufMelBands.cpp.o
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufMelBands.cpp:13:
In file included from /root/flucoma-sc-nov22/include/FluidSCWrapper.hpp:14:
In file included from /root/flucoma-sc-nov22/include/wrapper/DeriveBaseClass.hpp:3:
In file included from /root/flucoma-sc-nov22/include/wrapper/NonRealtime.hpp:5:
In file included from /root/flucoma-sc-nov22/include/wrapper/Messaging.hpp:3:
/root/flucoma-sc-nov22/include/wrapper/ArgsFromClient.hpp:4:10: fatal error: 'data/FluidMemory.hpp' file not found
#include <data/FluidMemory.hpp>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
distcc[593] ERROR: compile /root/flucoma-sc-nov22/build/generated_sources/FluidBufMelBands.cpp on 192.168.7.1 failed
distcc[593] (dcc_build_somewhere) Warning: remote compilation of '/root/flucoma-sc-nov22/build/generated_sources/FluidBufMelBands.cpp' failed, retrying locally
distcc[593] (dcc_build_somewhere) ERROR: failed to distribute and fallbacks are disabled
make[2]: *** [CMakeFiles/FluidBufMelBands.dir/build.make:82: CMakeFiles/FluidBufMelBands.dir/generated_sources/FluidBufMelBands.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:341: CMakeFiles/FluidBufMelBands.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
root@bela:~/flucoma-sc-nov22/build# ls -l _deps/flucoma-core-src/include/data/
total 84
-rw-r--r-- 1 root root  5436 Nov 15 11:42 FluidDataSet.hpp
-rw-r--r-- 1 root root  3737 Nov 15 11:42 FluidFile.hpp
-rw-r--r-- 1 root root   464 Nov 15 11:42 FluidIndex.hpp
-rw-r--r-- 1 root root 15624 Nov 15 11:42 FluidJSON.hpp
-rw-r--r-- 1 root root  6455 Nov 15 11:42 FluidMeta.hpp
-rw-r--r-- 1 root root 23153 Nov 15 11:42 FluidTensor.hpp
-rw-r--r-- 1 root root 15222 Nov 15 11:42 FluidTensor_Support.hpp
-rw-r--r-- 1 root root  1126 Nov 15 11:42 TensorTypes.hpp

find _deps -name FluidMemory returns no results.

Any idea what’s happened here?

Hmm. Perhaps CMake didn’t change the branch for flucoma-core, which would be weird and annoying.

If you re-run cmake:
cmake ..
does it sort itself out?

You should see it pulling in some new dependencies

Running cmake again doesn’t pull in anything, presumably since it believes it already has what it needs, I assume you mean to do it from scratch?

Also seeing this Python error:

root@bela:~/flucoma-sc-nov22/build# cmake -DSC_PATH=../../supercollider -DCMAKE_CXX_COMPILER=distcc-clang++ -DCMAKE_C_COMPILER=distcc-clang -DCMAKE_CXX_FLAGS='-mfpu=neon -mfloat-abi=hard' -DCMAKE_C_FLAGS='-mfpu=neon -mfloat-abi=hard' ..
-- Using the single-header code from /root/flucoma-sc-nov22/build/_deps/json-src/single_include/
-- /usr/bin/python3.9
-- Generating: DumpParams
Traceback (most recent call last):
  File "/root/flucoma-sc-nov22/build/_deps/flucoma-docs-src/list_python_tests.py", line 14, in <module>
    list_tests_from('flucoma/doc/test')
  File "/root/flucoma-sc-nov22/build/_deps/flucoma-docs-src/list_python_tests.py", line 10, in list_tests_from
    for test in suite:
TypeError: '_FailedTest' object is not iterable

Don’t think the Python error is connected. I’ve seen it before, but can’t remember quite why just at the moment.

Meanwhile, can you do ls _deps? That might help gauge how wrong things are going

root@bela:~/flucoma-sc-nov22/build# ls -l _deps/
total 84
drwxr-xr-x  2 root root 4096 Nov 15 12:59 eigen-build
drwxr-xr-x 17 root root 4096 Nov 15 13:00 eigen-src
drwxr-xr-x  4 root root 4096 Nov 15 12:59 eigen-subbuild
drwxr-xr-x  4 root root 4096 Nov 15 13:01 flucoma-core-build
drwxr-xr-x 10 root root 4096 Nov 15 12:59 flucoma-core-src
drwxr-xr-x  4 root root 4096 Nov 15 12:58 flucoma-core-subbuild
drwxr-xr-x  4 root root 4096 Nov 15 13:01 flucoma-docs-build
drwxr-xr-x 12 root root 4096 Nov 15 13:01 flucoma-docs-src
drwxr-xr-x  4 root root 4096 Nov 15 13:01 flucoma-docs-subbuild
drwxr-xr-x  2 root root 4096 Nov 15 12:59 hisstools-build
drwxr-xr-x  7 root root 4096 Nov 15 12:59 hisstools-src
drwxr-xr-x  4 root root 4096 Nov 15 12:59 hisstools-subbuild
drwxr-xr-x  3 root root 4096 Nov 15 13:01 json-build
drwxr-xr-x  7 root root 4096 Nov 15 13:01 json-src
drwxr-xr-x  4 root root 4096 Nov 15 13:01 json-subbuild
drwxr-xr-x  2 root root 4096 Nov 15 13:00 spectra-build
drwxr-xr-x  8 root root 4096 Nov 15 13:01 spectra-src
drwxr-xr-x  4 root root 4096 Nov 15 13:00 spectra-subbuild
drwxr-xr-x  4 root root 4096 Nov 15 13:01 tl_optional-build
drwxr-xr-x  6 root root 4096 Nov 15 13:01 tl_optional-src
drwxr-xr-x  4 root root 4096 Nov 15 13:01 tl_optional-subbuild
root@bela:~/flucoma-sc-nov22/build/_deps/flucoma-core-src# git branch -a
* (HEAD detached at origin/main)
  main
  remotes/origin/HEAD -> origin/main
  remotes/origin/dev
  remotes/origin/enhance/parameter-set
  remotes/origin/feature/FluidGridDimOut
  remotes/origin/feature/invert-pca
  remotes/origin/feature/peaks
  remotes/origin/fixing-MFCC-startCoeff
  remotes/origin/main
  remotes/origin/rename-AudioTransport-args
  remotes/origin/revert-75-enhance/versioning

If I git checkout dev then the missing file is there, but then I have to re-run cmake from scratch again due to GLOB mismatch!

Very painful and slow since sharing network with Bela over USB, and using the distcc compiler, are incompatible unless you update all of the IP addresses :')

Ah, sorry, brain fart on my part. :face_with_open_eyes_and_hand_over_mouth:

To get flucoma-sc to pull in a specific branch of flucoma-core and flucoma-docs try

cmake -DFLUID_BRANCH=dev ..
1 Like

Ok, on dev I’m getting:

-- Getting container node sizes
CMake Error at build/_deps/memory-src/cmake/get_container_node_sizes.cmake:39 (message):
  Unable to determine alignment of C++ type bool - no error text matching
  align_of<..., ##> in compiler output |Change Dir:
  /root/flucoma-sc-nov22/build/_deps/memory-build/src/CMakeFiles/CMakeTmp

Back on main, I am getting:

In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:11:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/TransientClient.hpp:19:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../../algorithms/public/TransientExtraction.hpp:13:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ARModel.hpp:13:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:14:
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:540:80: error: use of undeclared identifier 'vdivq_f32'
    friend SIMDType operator / (const SIMDType& a, const SIMDType& b) { return vdivq_f32(a.mVal, b.mVal); }
                                                                               ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:547:54: error: use of undeclared identifier 'vsqrtq_f32'
    friend SIMDType sqrt(const SIMDType& a) { return vsqrtq_f32(a.mVal); }
                                                     ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:551:55: error: use of undeclared identifier 'vrndq_f32'
    friend SIMDType trunc(const SIMDType& a) { return vrndq_f32(a.mVal); }
                                                      ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:580:24: error: use of undeclared identifier 'vcvt_f64_f32'
        vec.mData[0] = vcvt_f64_f32(vget_low_f32(mVal));
                       ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:581:24: error: use of undeclared identifier 'vcvt_f64_f32'
        vec.mData[1] = vcvt_f64_f32(vget_high_f32(mVal));
                       ^
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:11:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/TransientClient.hpp:19:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../../algorithms/public/TransientExtraction.hpp:13:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ARModel.hpp:13:
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:383:38: error: no matching constructor for initialization of 'SIMDType<double, currentVecSize>'
    SIMDType<double, currentVecSize> scaleVec(scale);
                                     ^        ~~~~~
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:168:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'double' to 'const SIMDType<double, 0>' for 1st argument
struct SIMDType {};
       ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:168:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'double' to 'SIMDType<double, 0>' for 1st argument
struct SIMDType {};
       ^
/root/flucoma-sc-nov22/build/_deps/hisstools-src/SIMDSupport.hpp:168:8: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:11:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/TransientClient.hpp:19:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../../algorithms/public/TransientExtraction.hpp:13:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ARModel.hpp:13:
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:385:40: warning: division by zero is undefined [-Wdivision-by-zero]
    for (size_t i = 0; i < (dataLength / currentVecSize); i++)
                                       ^ ~~~~~~~~~~~~~~
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:13:
In file included from /root/flucoma-sc-nov22/include/FluidSCWrapper.hpp:14:
In file included from /root/flucoma-sc-nov22/include/wrapper/DeriveBaseClass.hpp:3:
In file included from /root/flucoma-sc-nov22/include/wrapper/NonRealtime.hpp:5:
In file included from /root/flucoma-sc-nov22/include/wrapper/Messaging.hpp:3:
/root/flucoma-sc-nov22/include/wrapper/ArgsFromClient.hpp:89:34: warning: implicit conversion changes signedness: 'unsigned int' to 'fluid::index' (aka 'int') [-Wsign-conversion]
      index localBufNum = bufnum - x->mWorld->mNumSndBufs;
            ~~~~~~~~~~~   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/root/flucoma-sc-nov22/include/wrapper/ArgsFromClient.hpp:89:27: warning: implicit conversion changes signedness: 'fluid::index' (aka 'int') to 'unsigned int' [-Wsign-conversion]
      index localBufNum = bufnum - x->mWorld->mNumSndBufs;
                          ^~~~~~ ~
/root/flucoma-sc-nov22/include/wrapper/ArgsFromClient.hpp:87:15: warning: comparison of integers of different signs: 'fluid::index' (aka 'int') and 'uint32' (aka 'unsigned int') [-Wsign-compare]
    if(bufnum >= x->mWorld->mNumSndBufs)
       ~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~
/root/flucoma-sc-nov22/include/wrapper/ArgsFromClient.hpp:251:15: warning: comparison of integers of different signs: 'fluid::index' (aka 'int') and 'uint32' (aka 'unsigned int') [-Wsign-compare]
    if(bufnum >= x->mNumSndBufs)
       ~~~~~~ ^  ~~~~~~~~~~~~~~
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:13:
In file included from /root/flucoma-sc-nov22/include/FluidSCWrapper.hpp:14:
In file included from /root/flucoma-sc-nov22/include/wrapper/DeriveBaseClass.hpp:3:
/root/flucoma-sc-nov22/include/wrapper/NonRealtime.hpp:813:10: warning: unused variable 'ft' [-Wunused-variable]
    auto ft = getInterfaceTable();
         ^
In file included from /root/flucoma-sc-nov22/build/generated_sources/FluidBufTransients.cpp:11:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/TransientClient.hpp:19:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../../algorithms/public/TransientExtraction.hpp:13:
In file included from /root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ARModel.hpp:13:
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:385:40: warning: division by zero is undefined [-Wdivision-by-zero]
    for (size_t i = 0; i < (dataLength / currentVecSize); i++)
                                       ^ ~~~~~~~~~~~~~~
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:416:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOp<fluid::algorithm::impl::ConvolveOp>' requested here
  binaryOp(spectrum1, spectrum2, dataLength, scale, op);
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:519:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOpReal<fluid::algorithm::impl::ConvolveOp>' requested here
  binaryOpReal(spectrum1.mSpectra, spectrum2.mSpectra, fftSize >> 1, scale,
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:537:9: note: in instantiation of function template specialization 'fluid::algorithm::impl::binarySpectralOperationReal<fluid::algorithm::impl::ConvolveOp>' requested here
  impl::binarySpectralOperationReal(output, in1, size1, in2, size2, mode,
        ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:73:23: error: invalid operands to binary expression ('const SIMDType<double, 0>' and 'const SIMDType<double, 0>')
    outR = scale * (a * c - b * d);
                    ~ ^ ~
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:386:7: note: in instantiation of function template specialization 'fluid::algorithm::impl::ConvolveOp::operator()<SIMDType<double, 0>>' requested here
      op(real1[i], imag1[i], real1[i], imag1[i], real2[i], imag2[i], scaleVec);
      ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:416:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOp<fluid::algorithm::impl::ConvolveOp>' requested here
  binaryOp(spectrum1, spectrum2, dataLength, scale, op);
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:519:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOpReal<fluid::algorithm::impl::ConvolveOp>' requested here
  binaryOpReal(spectrum1.mSpectra, spectrum2.mSpectra, fftSize >> 1, scale,
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:537:9: note: in instantiation of function template specialization 'fluid::algorithm::impl::binarySpectralOperationReal<fluid::algorithm::impl::ConvolveOp>' requested here
  impl::binarySpectralOperationReal(output, in1, size1, in2, size2, mode,
        ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:74:23: error: invalid operands to binary expression ('const SIMDType<double, 0>' and 'const SIMDType<double, 0>')
    outI = scale * (a * d + b * c);
                    ~ ^ ~
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:385:40: warning: division by zero is undefined [-Wdivision-by-zero]
    for (size_t i = 0; i < (dataLength / currentVecSize); i++)
                                       ^ ~~~~~~~~~~~~~~
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:416:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOp<fluid::algorithm::impl::CorrelateOp>' requested here
  binaryOp(spectrum1, spectrum2, dataLength, scale, op);
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:519:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOpReal<fluid::algorithm::impl::CorrelateOp>' requested here
  binaryOpReal(spectrum1.mSpectra, spectrum2.mSpectra, fftSize >> 1, scale,
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:546:9: note: in instantiation of function template specialization 'fluid::algorithm::impl::binarySpectralOperationReal<fluid::algorithm::impl::CorrelateOp>' requested here
  impl::binarySpectralOperationReal(output, in1, size1, in2, size2, mode,
        ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:84:23: error: invalid operands to binary expression ('const SIMDType<double, 0>' and 'const SIMDType<double, 0>')
    outR = scale * (a * c + b * d);
                    ~ ^ ~
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:386:7: note: in instantiation of function template specialization 'fluid::algorithm::impl::CorrelateOp::operator()<SIMDType<double, 0>>' requested here
      op(real1[i], imag1[i], real1[i], imag1[i], real2[i], imag2[i], scaleVec);
      ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:416:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOp<fluid::algorithm::impl::CorrelateOp>' requested here
  binaryOp(spectrum1, spectrum2, dataLength, scale, op);
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:519:3: note: in instantiation of function template specialization 'fluid::algorithm::impl::binaryOpReal<fluid::algorithm::impl::CorrelateOp>' requested here
  binaryOpReal(spectrum1.mSpectra, spectrum2.mSpectra, fftSize >> 1, scale,
  ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:546:9: note: in instantiation of function template specialization 'fluid::algorithm::impl::binarySpectralOperationReal<fluid::algorithm::impl::CorrelateOp>' requested here
  impl::binarySpectralOperationReal(output, in1, size1, in2, size2, mode,
        ^
/root/flucoma-sc-nov22/build/_deps/flucoma-core-src/include/clients/rt/../common/../../algorithms/public/../util/ConvolutionTools.hpp:85:23: error: invalid operands to binary expression ('const SIMDType<double, 0>' and 'const SIMDType<double, 0>')
    outI = scale * (b * c - a * d);
                    ~ ^ ~
8 warnings and 10 errors generated.
distcc[19364] elapsed compilation time 11.697971s
distcc[19364] (dcc_exit) exit: code 1; self: 0.020046 user 0.982270 sys; children: 3.352192 user 1.967492 sys
distcc[19364] (dcc_cleanup_tempfiles_inner) deleted 2 temporary files
make[2]: *** [CMakeFiles/FluidBufTransients.dir/build.make:82: CMakeFiles/FluidBufTransients.dir/generated_sources/FluidBufTransients.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1097: CMakeFiles/FluidBufTransients.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

Is the this the same as before @a.harker or should this in theory have been fixed? (note I couldn’t get dev branches to build for other reasons above, in case it’s only fixed in dev)