Passing Gen data to UI


    Mar 04 2017 | 7:55 pm
    Hello,
    I am experimenting with exporting c++ from gen into JUCE to create plugins using the gen-plugin-export templates here; https://github.com/cycling74/gen-plugin-export.
    I have created a UI in JUCE to control parameters in the dsp but I would like to pass a calculated value from the dsp to the UI. It seems logical to use [setparam "paramname"], but that doesn't show up in the exported code.
    It seems the only way to get out of gen is via an outlet but that equals "gen_xxxx" in the exported code.
    I know very little about c++ syntax so I'm wondering if there is any object to do this in gen~ instead of messing with the exported c++.
    Thanks in advance.

    • Apr 01 2017 | 6:54 pm
      Hello,
      trying to do exactly the same....
      i am a few steps back though...
      how do you import a patch into gen in order to get the code?
      i keep getting error : not found in gen doamin dsp.gen
    • Apr 01 2017 | 7:11 pm
      "how do you import a patch into gen in order to get the code?"
      you just can't do that
      other than that, i don't know.
    • Apr 02 2017 | 9:55 pm
      @Stone,
      If you're trying to create some UI that reflects some internal state of the audio algorithm, I recommend using named History objects. Set the value of a named history for anything you want to display in the UI. All named history objects exist as numbers (doubles) in the C++ state struct, which you can safely read from any thread. So your UI draw routine can just use these values directly. E.g. if the history is called "freq_value" then you can just grab it in C++ from the state pointer with state->freq_value.
      (The [setparam] message is only for within gen patching, it's just a way to set the values of [param] objects embedded within subpatchers; since patchers are only an editing structure, they're optimized away in the generated code.)
      @Chris,
      I couldn't quite understand your question; you can create and edit gen patchers in Max by double-clicking on the [gen~] object -- and you can do that on any gen~ examples in Max or that you find shared here. Any gen~ object's code can be exported using the "exportcode" message.
      Graham