scanner-darkly / multipass

app development for monome eurorack modules and other platforms
GNU General Public License v2.0
29 stars 9 forks source link

C++ support #1

Open scanner-darkly opened 5 years ago

scanner-darkly commented 5 years ago

this is to discuss adding support for C++ based platforms - vcvrack etc.

Dewb commented 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.

Dewb commented 5 years ago

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.

scanner-darkly commented 5 years ago

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.