1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Solved Default values on Knobs

Discussion in 'Scripting Workshop' started by partingwave, Nov 24, 2021.

  1. partingwave

    partingwave New Member

    Messages:
    2
    Hey friends,

    I'm somewhat new to the KSP world, and am trying to figure out how to set proper default values on my Kontakt knobs.

    Even though I have "make_persistent", I see that I need to follow additional steps to have the knobs display proper values upon patch loading.

    ta2bells_default.png

    I want to fix the values on my ADSR, as well as my blend knobs so that they are within the proper respective ranges, and not "100000 dB" Sustain level, for instance.

    Does anybody know how I could fix this?

    Thanks in advance! :)

    Code:
    on init
        make_perfview
        set_ui_height_px(218)
    
        declare ui_knob $mic1Knob (0, 1000000, 1)
        set_text($mic1Knob, "Close M")
        move_control($mic1Knob, 3,4)
        set_knob_unit($mic1Knob, $KNOB_UNIT_DB)
        make_persistent($mic1Knob)
    
        declare ui_knob $mic2Knob (0, 1000000, 1)
        set_text($mic2Knob, "Close ST")
        move_control($mic2Knob, 4,4)
        set_knob_unit($mic2Knob, $KNOB_UNIT_DB)
        make_persistent($mic2Knob)
    
        declare ui_knob $mic3Knob (0, 1000000, 1)
        set_text($mic3Knob, "Mid ST")
        move_control($mic3Knob, 5,4)
        set_knob_unit($mic3Knob, $KNOB_UNIT_DB)
        make_persistent($mic3Knob)
    
        declare ui_knob $mic4Knob (0, 1000000, 1)
        set_text($mic4Knob, "Room ST")
        move_control($mic4Knob, 6,4)
        set_knob_unit($mic4Knob, $KNOB_UNIT_DB)
        make_persistent($mic4Knob)
    
        declare $grp_idx
        $grp_idx :=0
    
        declare $env_idx
        $env_idx :=find_mod($grp_idx, "ENV_VOL")
    
    
        declare ui_knob $knobAttack(0, 1000000, 1)
        move_control($knobAttack,3,6)
        set_text($knobAttack,"Attack")
        set_knob_unit($knobAttack, $KNOB_UNIT_MS)
        set_knob_defval($knobAttack,500000)
    
     
        $knobAttack := get_engine_par($ENGINE_PAR_ATTACK, $grp_idx, $env_idx, -1)
        set_knob_label($knobAttack, get_engine_par_disp($ENGINE_PAR_ATTACK, $grp_idx, $env_idx, -1))
        make_persistent($knobAttack)
    
    
        declare ui_knob $knobDecay(0, 1000000, 1)
        move_control($knobDecay, 4, 6)
        set_text($knobDecay,"Decay")
        set_knob_unit($knobDecay, $KNOB_UNIT_MS)
    
        $knobDecay := get_engine_par($ENGINE_PAR_DECAY, $grp_idx, $env_idx, -1)
        set_knob_label($knobDecay, get_engine_par_disp($ENGINE_PAR_DECAY, $grp_idx, $env_idx, -1))
        make_persistent($knobDecay)
    
        declare ui_knob $knobSustain(0, 1000000, 1)
        move_control($knobSustain,5,6)
        set_text($knobSustain, "Sustain")
        set_knob_unit($knobSustain,$KNOB_UNIT_DB)
        set_knob_defval($knobSustain,500000)
    
        $knobSustain := get_engine_par($ENGINE_PAR_SUSTAIN, $grp_idx, $env_idx, -1)
        set_knob_label($knobSustain, get_engine_par($ENGINE_PAR_SUSTAIN, $grp_idx, $env_idx, -1))
        make_persistent($knobSustain)
    
    
        declare ui_knob $knobRelease(0, 1000000, 1)
        move_control($knobRelease,6,6)
        set_text($knobRelease, "Release")
        set_knob_unit($knobRelease,$KNOB_UNIT_MS)
        set_knob_defval($knobRelease,500000)
    
        $knobRelease := get_engine_par($ENGINE_PAR_RELEASE, $grp_idx, $env_idx, -1)
        set_knob_label($knobRelease, get_engine_par($ENGINE_PAR_RELEASE, $grp_idx, $env_idx, -1))
        make_persistent($knobRelease)
    
    
    
    
    end on
    
    on ui_control ($mic1Knob)
        set_engine_par ($ENGINE_PAR_VOLUME,$mic1Knob,-1,-1,$NI_BUS_OFFSET + 0)
        set_knob_label ($mic1Knob, get_engine_par_disp($ENGINE_PAR_VOLUME, -1,-1,$NI_BUS_OFFSET + 0))
    end on
    
    
    on ui_control ($mic2Knob)
        set_engine_par ($ENGINE_PAR_VOLUME,$mic2Knob,-1,-1,$NI_BUS_OFFSET + 1)
        set_knob_label ($mic2Knob, get_engine_par_disp($ENGINE_PAR_VOLUME, -1,-1,$NI_BUS_OFFSET + 1))
    end on
    
    
    on ui_control ($mic3Knob)
        set_engine_par ($ENGINE_PAR_VOLUME,$mic3Knob,-1,-1,$NI_BUS_OFFSET + 2)
        set_knob_label ($mic3Knob, get_engine_par_disp($ENGINE_PAR_VOLUME, -1,-1,$NI_BUS_OFFSET + 2))
    end on
    
    
    on ui_control ($mic4Knob)
        set_engine_par ($ENGINE_PAR_VOLUME,$mic4Knob,-1,-1,$NI_BUS_OFFSET + 3)
        set_knob_label ($mic4Knob, get_engine_par_disp($ENGINE_PAR_VOLUME, -1,-1,$NI_BUS_OFFSET + 3))
    end on
    
    
    
    
    on ui_control($knobAttack)
        $grp_idx := 0
        while($grp_idx < $NUM_GROUPS)
        set_engine_par($ENGINE_PAR_ATTACK, $knobAttack, $grp_idx, $env_idx, -1)
        inc($grp_idx)
        end while
        set_knob_label($knobAttack, get_engine_par_disp($ENGINE_PAR_ATTACK, 0, $env_idx, -1))
    
    end on
    
    
    on ui_control($knobDecay)
        $grp_idx := 0
        while($grp_idx < $NUM_GROUPS)
            set_engine_par($ENGINE_PAR_DECAY, $KnobDecay, $grp_idx, $env_idx, -1)
            inc($grp_idx)
        end while
        set_knob_label($knobDecay,get_engine_par_disp($ENGINE_PAR_DECAY, 0, $env_idx, -1))
    end on
    
    on ui_control($knobSustain)
        $grp_idx := 0
        while($grp_idx < $NUM_GROUPS)
            set_engine_par($ENGINE_PAR_SUSTAIN, $knobSustain, $grp_idx, $env_idx, -1)
            inc($grp_idx)
        end while
        set_knob_label($knobSustain, get_engine_par_disp($ENGINE_PAR_SUSTAIN, 0, $env_idx, -1))
    end on
    
    on ui_control($knobRelease)
        $grp_idx := 0
        while($grp_idx < $NUM_GROUPS)
            set_engine_par($ENGINE_PAR_RELEASE, $knobRelease, $grp_idx, $env_idx, -1)
            inc($grp_idx)
        end while
        set_knob_label($knobRelease, get_engine_par_disp($ENGINE_PAR_RELEASE, 0, $env_idx, -1))
    
    end on
    
     
  2. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    Repeat those set_knob_label lines in "on persistence_changed" callback.
     
  3. partingwave

    partingwave New Member

    Messages:
    2
    Awesome, thank you! :)