Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++ support #1

Open
scanner-darkly opened this issue Oct 19, 2019 · 3 comments
Open

C++ support #1

scanner-darkly opened this issue Oct 19, 2019 · 3 comments

Comments

@scanner-darkly
Copy link
Owner

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

@Dewb
Copy link

Dewb commented Oct 19, 2019

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
Copy link

Dewb commented Oct 19, 2019

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
Copy link
Owner Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants