Any Kontakt users out there?

As I've just been working on adding synthesis parameter functions to our 
instrument script engine, I wondered how endless loops are usually hanndled 
with Kontakt KSP scripts?

Let's assume you want to implement a simple stuttering effect by using an 
instrument script, you could do it like with the following one:

on note
  while (1)
    wait(200000)
    change_vol($EVENT_ID, -20000)
    wait(200000)
    change_vol($EVENT_ID, 0)
  end while
end on

This works, however the problem is that this script will run forever, even if 
your note and/or voices are long dead and gone. So since execution of this 
particular script will *never* stop, this is certainly not what you want to 
end with. How do Kontakt KSP script authors usually handle this?

Intuitively the right way to fix the upper script, would be something like 
this:

on note
  while (1)
    wait(200000)
    if (note_is_gone($EVENT_ID))
      exit()
    end if
    change_vol($EVENT_ID, -20000)

    wait(200000)
    if (note_is_gone($EVENT_ID))
      exit()
    end if
    change_vol($EVENT_ID, 0)
  end while
end on

But as far as I can see it, Kontakt does not provide a built-in function (like 
"note_is_gone()" in the latter pseudo solution) for checking whether 
notes/voices are gone, is there any?

Another "solution" would be to force quitting execution of such an endless 
script by the script engine itself as soon as the respective notes/voices are 
gone. But IMO auto killing scripts would not be a desirable solution either, 
because a script author might intentionally i.e. want to trigger new voices 
with play_note() after the original voices are gone (i.e. for delay effects). 
So IMO it should be up to the script author to define when his endless loops 
should stop and when not.

Anybody?

BTW, these are the 3 new NKSP functions just been added & implemented:

http://doc.linuxsampler.org/Instrument_Scripts/NKSP_Language/Reference/change_vol_function/
http://doc.linuxsampler.org/Instrument_Scripts/NKSP_Language/Reference/change_tune_function/
http://doc.linuxsampler.org/Instrument_Scripts/NKSP_Language/Reference/change_pan_function/

CU
Christian

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to