C++ to Gen~


    Sep 17 2017 | 9:59 am
    Hello, I found a very nice project on Github (https://github.com/VCVRack/Rack) and wonder if it's very difficult to port it on Gen~. it could be really nice to have some of this Mutable Instruments in Beap… Does somebody could take a look at this ? Or give some clue to begin…

    • Sep 19 2017 | 2:58 pm
      Sometimes porting C code to genexpr is pretty easy -- there's only a handful of gotchas in the differences of the language. But sometimes it is much trickier, if the original code uses constructs that are more difficult to replicate in gen (e.g. arrays of structs). And some parts may need to be in Max, e.g. if there's buffer loading, MIDI, preset loading, etc.
      That repo has a lot of code in it -- and it looks like a lot of that is application level. Isn't that repo an entire DAW? Looks to me like the port of the MutableInstruments you mention are in this repo: https://github.com/VCVRack/AudibleInstruments
      Note that the original MutableInstruments (https://mutable-instruments.net) are covered by cc-by-sa 3.0 license, so anything derived from it would also need to honor those terms. https://creativecommons.org/licenses/by-sa/3.0/ More discussion about what VCV is doing here: https://forum.mutable-instruments.net/t/vcv-and-moral-conflict/12901
      Based on that I'd recommend you contact the Mutable Instruments community first to get the go ahead. Other than that, the actual instruments vary in complexity, some look pretty straightforward to gen-ify, others may be much trickier (e.g. Clouds).
    • Sep 24 2017 | 7:45 pm
      Olivier' code is a really wonderful gift to the community and worth the dive. You rarely get to see a full example of production code.
      One thing to note is that Olivier's code was designed to run at specific sample rates, so things may sound a little different in VCV if the samplerate is lower than the module's original sample rate. Any filters in the code with static, hard-coded coefficients would need to be recomp because they would be off in terms of frequency response. (e.g. 500 Hz occurs at a different angle on the unit circle for 44100 and 96000)