No you were right to remove this code as processors
isn’t a trivial type. So the line peaks::Processors processors[2] = {};
is correct.
I edited my crash log post as I initially thought it was a problem with the firmware; in reading the log I assumed (wrongly) that a large value was being passed by the module to the firmware. This is not the case. The problem is in the eurorack/peaks/modulations/multistage_envelope.cc
file the trace is pointing to. This is due to the shape_
variable not being initialized in the void MultistageEnvelope::Init()
method.
The line pointed to in the crash is
which uses shape_
as an index for lookup_table_table
LUT_ENV_LINEAR
is defined in eurorack/peaks/resources.h
segment_
and phase_
are initialized in void MultistageEnvelope::Init()
The fix I have used is to add this code to the end of void MultistageEnvelope::Init()
in peaks/modulations/multistage_envelope.cc
for (uint8_t i = 0; i < 8; i++) {
shape_[i] = {};
}
Any builders feel free to try the firmware code fix and let us know how you get on.