Hello!
I'm working on compiling a RNBO patch and my version of RNBO is 1.4.1. I'm using the main branch of the rnbo.example.bela repo.
A very simple RNBO patch compile and runs on the Bela fine, but other RNBO patches give the following list of errors:
Building project ...
Building rnbo_source.cpp...
Makefile:510: recipe for target '/root/Bela/projects/rnbo.example.bela-main/build/rnbo_source.o' failed
Build finished
In file rnbo_source.cpp: unknown type name 'INTERNALENGINE' column: 26, line: 88
In file rnbo_source.cpp: explicit specialization of non-template class 'MinimalEngine' column: 14, line: 92
In file rnbo_source.cpp: unknown type name 'EXTERNALENGINE' column: 18, line: 666
In file rnbo_source.cpp: unknown type name 'INTERNALENGINE' column: 18, line: 667
In file rnbo_source.cpp: unknown type name 'INTERNALENGINE' column: 39, line: 675
In file rnbo_source.cpp: unknown type name 'EXTERNALENGINE' column: 39, line: 2644
In file rnbo_source.cpp: unknown type name 'SampleBufferRef' column: 5, line: 2903
In file rnbo_source.cpp: unknown type name 'SampleBuffer'; did you mean 'SampleOffset'? column: 42, line: 261
In file rnbo_source.cpp: use of undeclared identifier 'TimeNow' column: 14, line: 676
In file rnbo_source.cpp: use of undeclared identifier 'EXTERNALENGINE' column: 20, line: 678
In file rnbo_source.cpp: expected expression column: 35, line: 678
In file rnbo_source.cpp: unknown type name 'SampleBuffer'; did you mean 'SampleOffset'? column: 5, line: 937
In file rnbo_source.cpp: no viable conversion from 'RNBO::DataRef' to 'SampleOffset' (aka 'int') column: 18, line: 937
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 9, line: 1108
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 30, line: 2256
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 30, line: 2260
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 30, line: 2275
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 30, line: 2279
In file rnbo_source.cpp: too many template arguments for class template 'listbase' column: 30, line: 2283
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:88:26: error: unknown type name 'INTERNALENGINE'
template <class ENGINE = INTERNALENGINE> class rnbomatic : public PatcherInterfaceImpl {
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:92:14: error: explicit specialization of non-template class 'MinimalEngine'
friend class MinimalEngine<>;
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:666:18: error: unknown type name 'EXTERNALENGINE'
void advanceTime(EXTERNALENGINE*) {}
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:667:18: error: unknown type name 'INTERNALENGINE'
void advanceTime(INTERNALENGINE*) {
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:675:39: error: unknown type name 'INTERNALENGINE'
void updateTime(MillisecondTime time, INTERNALENGINE*, bool inProcess = false) {
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2644:39: error: unknown type name 'EXTERNALENGINE'
void updateTime(MillisecondTime time, EXTERNALENGINE* engine, bool inProcess = false) {
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2903:5: error: unknown type name 'SampleBufferRef'
SampleBufferRef mtof_01_innerMtoF_buffer;
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:261:42: error: unknown type name 'SampleBuffer'; did you mean 'SampleOffset'?
this->mtof_01_innerMtoF_buffer = new SampleBuffer(this->RNBODefaultMtofLookupTable256);
^~~~~~~~~~~~
SampleOffset
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_Types.h:164:8: note: 'SampleOffset' declared here
using SampleOffset = Int;
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:676:14: error: use of undeclared identifier 'TimeNow'
if (time == TimeNow) time = getPatcherTime();
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:678:20: error: use of undeclared identifier 'EXTERNALENGINE'
updateTime(time, (EXTERNALENGINE*)nullptr);
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:678:35: error: expected expression
updateTime(time, (EXTERNALENGINE*)nullptr);
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:937:5: error: unknown type name 'SampleBuffer'; did you mean 'SampleOffset'?
SampleBuffer buffer(ref);
^~~~~~~~~~~~
SampleOffset
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_Types.h:164:8: note: 'SampleOffset' declared here
using SampleOffset = Int;
^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:937:18: error: no viable conversion from 'RNBO::DataRef' to 'SampleOffset' (aka 'int')
SampleBuffer buffer(ref);
^ ~~~
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:1108:9: error: too many template arguments for class template 'listbase'
listbase<number, 1> converted = {v};
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2256:30: error: too many template arguments for class template 'listbase'
this->message_01_set_set(listbase<number, 1>{60});
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2260:30: error: too many template arguments for class template 'listbase'
this->message_02_set_set(listbase<number, 1>{62});
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2275:30: error: too many template arguments for class template 'listbase'
this->message_03_set_set(listbase<number, 1>{64});
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2279:30: error: too many template arguments for class template 'listbase'
this->message_04_set_set(listbase<number, 1>{65});
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^
/root/Bela/projects/rnbo.example.bela-main/rnbo_source.cpp:2283:30: error: too many template arguments for class template 'listbase'
this->message_05_set_set(listbase<number, 1>{67});
^ ~~
/root/Bela/projects/rnbo.example.bela-main/rnbo/common/RNBO_List.h:27:29: note: template is declared here
template<typename T> class listbase {
~~~~~~~~~~~~~~~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [/root/Bela/projects/rnbo.example.bela-main/build/rnbo_source.o] Error 1
My assumption is that the errors are due to the content of the RNBO patch more than they are the version
of RNBO/the RNBO Bela repo materials, but I can't pinpoint what might be causing them. Does anyone have some suggestions? The problematic RNBO patch and the generated C++ code is attached here: