What's new

Kontakt 6 instrument settings not recalling

Dom

Active Member
For example the Imperfect Samples Fazioli does not recall the "Hollywood" and "Round Robin" settings, when loading the Logic session again, or when recalling a saved channelstrip. Whenever the Fazioli is loaded it loads with "Hollywood" off.

Similarly, on the (excellent and free) St. Augustine's Organ by BigCat, the stops are not recalling.

Kontakt 6.7.1, Logic 10.7.4

Is there a way to permanently fix those settings, perhaps by going into the Kontakt instruments?
 

Attachments

  • Screenshot 2023-10-27 at 10.37.06.png
    Screenshot 2023-10-27 at 10.37.06.png
    94.4 KB · Views: 4
Have you saved the instrument with the settings "on" within Kontakt before closing the Logic session? (Overwrite default)
 
Thanks. I just tried that. Doesn't recall either unfortunately.
 
Most likely a bug in the instrument script (those parameters weren't made persistent, or don't recall their state visually properly).
 
The script is not locked and accessible. Anything I should look out for, so I can fix it? I'm not sure I can post the entire script here, but see the snippet in the attached screenshot.

Basically I'd be happy to lock both of these parameters to "on", and happy to lose the GUI control over them.
 

Attachments

  • Screenshot 2023-10-27 at 11.08.14.png
    Screenshot 2023-10-27 at 11.08.14.png
    7.9 KB · Views: 9
Copy out the whole script to a text editor and see if you can find a line that says make_persistent($HOLLYWOODBYPASS) or make_persistent ($HOLLYWOODBYPASS).

If it doesn't exist, add it to the init callback.
 
Thank you. I added the 'make persistent' lines. On reload, the button colour (it turns white when it's "on") is remembered now, but it's not having an effect.

See attached screenshot with my added lines.

Ideas?
 

Attachments

  • Screenshot 2023-11-01 at 17.19.33.png
    Screenshot 2023-11-01 at 17.19.33.png
    12.2 KB · Views: 8
Thank you. I added the 'make persistent' lines. On reload, the button colour (it turns white when it's "on") is remembered now, but it's not having an effect.

See attached screenshot with my added lines.

Ideas?
Have you applied read_persistent_var() ?

From the Kontakt 5 KSP reference manual:

"
read_persistent_var(<variable>)
instantly reloads the value of a variable that was saved via the make_persistent() command

Remarks
• This command can only be used within the init callback.
• The state of the variable is saved not only with the patch (or multi or host chunk), but also when a script is saved as a KONTAKT preset (.nkp file).
• When replacing script code by copy and replacing the text, the values of persistent variables is also retained.
• Sometimes, when working on more complex scripts, you'll want to "flush" the variables by resetting the script. You can do this by applying an empty script in the respective slot.
• You can also use the on persistence callback for retrieving the values of persistent variables
"

Examples
Code:
on init
   declare ui_label $label (1,1)
   declare ui_button $button
   set_text($button,"$a := 10000")
   declare $a
   make_persistent($a)
   {read_persistent_var($a)}
   set_text ($label,$a)
end on
on ui_control ($button)
   $a := 10000
   set_text($label,$a)
end on

"after applying this script, click on the button and then save and close the NKI. After reloading it, the label will display 0 because the value of $a is initialized at the very end of the init callback. Now remove the {} around read_persistent_var and apply the script again. Voila."
 
Thanks both. I added the read_persistent_var() lines. See screenshot. Saved as new NKI.

Still doesn't recall unfortunately!
 

Attachments

  • Screenshot 2023-11-02 at 11.16.02.png
    Screenshot 2023-11-02 at 11.16.02.png
    14.6 KB · Views: 5
It doesn't matter because those set_engine_par()s are using a literal value (1) instead of value of the widget.
 
The script is not locked and accessible. Anything I should look out for, so I can fix it? I'm not sure I can post the entire script here, but see the snippet in the attached screenshot.

Basically I'd be happy to lock both of these parameters to "on", and happy to lose the GUI control over them.
So, without seeing the "else" statement of the "if" conditional of the "ui_control" of the script I would say, if you want to lock these controls (RR and Bypass to 'on') do as follow:

From the ksp reference manual:
set_engine_par()
set_engine_par(<parameter>,<value>,<group>,<slot>,<generic>)

Change wherever you find these in the script:
Code:
_set_engine_par($ENGINE_PAR_EFFECT_BYPASS,1,0,0,-1)
_set_engine_par($ENGINE_PAR_EFFECT_BYPASS,1,1,0,-1)

to these (changing <value> "1" to "0" - zero) to lock these controls to permanently "on":
Code:
_set_engine_par($ENGINE_PAR_EFFECT_BYPASS,0,0,0,-1)
_set_engine_par($ENGINE_PAR_EFFECT_BYPASS,0,1,0,-1)

Instead of that, obviously you could do it elegantly in the ui_control button callback adding some "else", but I don't know this script, so best help is the KSP reference manual.
 
Thanks all for the incredible help. In the end, I deleted the relevant lines that pass the gui control to the relevant parameters, to keep RR and HW on permanently, and saved as a new preset, which all suits me fine.

It all taught me how much there is to learn with Kontakt scripting, and I just got a tiny insight now. Thank you.
 
Top Bottom