Syntesizer group unisono detune spread and FM in interface

  • Hello !
    like said in the title, i try the synth function of Hise. i put a syntesizer group with waveform generator in it.
    in the interface menu (interface property editor) i see all waveform module functions (in the processor ID & parameterID), but don't see anything about the golbal synth (unisono voices, detune, spread and FM)

    how can i acces it to set slider/knob to it ?

    thanks in advance.

  • I'm looking for something like this as well.

  • Ok...
    So anyone help ?
    thanks in advance

  • I remember there's a glitch that prevents the parameters to show up in the pop up, I'll take a look. Meanwhile you can resort back to magic numbers and the conventional way of controlling parameters via the onControl callback.

  • ok,
    what is these "magic numbers" and onControlCallback script ?

    thanks in advance 🙂


    Seems that you working on it. right ?

    If yes: many thanks 😄


    • changed internal content data structure to tree (more robust parent component handling)
      12 hours ago by Christoph Hart
      new_threading 22af3f4d
      12 hours ago in 4 min 44 sec
    • cleaned up the popupmenus a bit
      20 hours ago by Christoph Hart
      new_threading 857e195e
      20 hours ago in 4 min 54 sec

  • Well, in fact I am working on a complete overhaul of the interface designer, which is be the biggest change in HISE since the layout redesign. It includes multiple selection, drag and drop to change parent components, delete, duplication of multiple items, etc.

    It's not on the master branch though, I need a bit more testing before it's considered usable for other folks, but if you're brave, feel free to check out the new_threading branch and give it a test run. The fix for the synth groups is also included there so it might be an incentive for you 🙂

  • ok, i will take a look at it.

    i tried this:
    const var Unison_Voices = Content.addKnob("Unison_Voices", 411, 61);
    const var Subtractive = Synth.getChildSynth("Subtractive");
    if(number == Unison_Voices) Subtractive.setAttribute(Subtractive.Unisono_Voices, value); // Unison_Voices is the name of my knob and Subtractive is my renamed waveform generator.

    but it result as that controlling the volume of the generator, not the unison voices.

    EDIT (!!!)

    Yipeeeeee !!!! i found !!!!!
    i right clicked on the waveform generator and choose copy to the clipboard. paste it on a note and took a look at the good names for voices, detune, etc....

    for the Unisono voices it's: UnisonoVoiceAmount....


    so for the unisono it's working !
    i test the rest of the module 😄

  • ok !
    for the waveform generator it's:

    function onControl(number, value)
    if(number == Unison_Voices) Subtractive.setAttribute(Subtractive.UnisonoVoiceAmount, value);
    if(number == SubtractiveDetune) Subtractive.setAttribute(Subtractive.UnisonoDetune, value);
    if(number == SubSpread) Subtractive.setAttribute(Subtractive.UnisonoSpread, value);
    if(number == SubFM) Subtractive.setAttribute(Subtractive.EnableFM, value);

    Of course all the names in the (number == names) are my knobs/buttons/sliders names and "Subtractive" is my waveform generator name. you must change it with your own names.
    don't forget to set up your buttons, sliders, knobs (the min, max, default value, center, etc...) in the popup interface before writing this code !

    thanks to Christoph for this link that helped me a lot (
    thanks to d.healey to put me in the right direction.

  • Yes, that's fine, but if you use a switch statement, it will be faster. Or simply use else if. This way you evaluate each expression every time.

  • yes !
    i also work with RackAfx (some times ago with WDL OL) and in this case using a lot of "if" and "else if" or "case" with the functions to do.
    but it's pure C++
    here it's JSON.
    i must learn again how to work with C++ codes in hise before doing this.

    i actually make the synth in hise and the BDD Juno/Dimension-D in Rackafx.

Log in to reply