Open scanner-darkly opened 5 years ago
I can see a couple ways this could work:
1) a single C++ multipass API that works within the subset of C++ supported by the AVR compiler. 2) a separate C++ wrapper around the C multipass API for the convenience of C++ environments (like VCV Rack.)
2 is a lot easier, but to get maximum benefit, though, I think we need not just 1 but also parts of libavr to embrace C++, or at least move away from global scope variables.
One of the problems I’d like to solve is to be able to build a zero-globals version of each firmware for VCV Rack so you can load multiple copies of each module without interference. Right now the monome-rack package makes a separate disk copy of each binary for each module you instantiate, to ensure each copy gets their own global memory locations.
yeah 2 sounds a lot easier. updating libavr32 would make sense if there were more firmwares using it, but if we migrate everything to multipass we don't have to worry about it, right? are there some other benefits to upgrading libavr32 to C++? another thing to consider - aleph also uses libavr32.
this is to discuss adding support for C++ based platforms - vcvrack etc.