Kontakt Scripting - Best way to create Wet / Dry FX?
Hey! First time poster. Apologies if this has been asking before, I did look!
I'm making a Kontakt instrument with a few different FX dry/web knobs such as reverb, phaser etc. I have the knob mapped to $ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN and $ENGINE_PAR_SEND_EFFECT_DRY_LEVEL on the FX, reducing and increasing the appropriate dry or wet volume as needed. However I've noticed the volume seems quite inconsistent. While it sounds fine at 100% dry or 100% wet, I'm finding at 50% of both, it generally sounds quieter, almost as if the volume curve is exponential for each with the movement of the knob... if that makes sense?
on ui_control($Verb)
set_engine_par($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN, $Verb, -1, 0, 1)
set_engine_par($ENGINE_PAR_SEND_EFFECT_DRY_LEVEL, 500000 - $Verb, -1, 0,
Help much appreciated, sorry if this is a known issue, I am a noob
Comments
-
@EvilDragon Pretty sure you know an answer to this? 🙂
1 -
Old forum to the rescue!
https://www.native-instruments.com/forum/threads/dry-wet-control-of-inserts.348321/#post-1752579
1 -
Thanks both that's so helpful :) I have it set up.
As a follow up question if possible, I noticed that Retro Machines MK2 seems to have quite a smooth setup for FX (Reverb and Echo) but for the life of me I can't figure out exactly how it works. There seems to be something automating the send levels of the effects, based on the knob position... as if when the key is triggered, the FX send level on the source module turns to zero. It doesn't seem to be modulated by any ADSRs I can see
(A). Is this superior in some way to automating the dry/wet as discussed above?
(B). IF SO - would someone mind explaining exactly how the FX work in Retro machines?
Thank you - again apologies for the noob question, I genuinely spent a while trying to find an article that would answer it but haven't found anything as of yet. Is it Midi CC related?
0 -
Hey guys, unfortunately the link to the old forum posts directs you to the native instrument community website and not to the old forum... does anyone know a way how to still access the old forum posts?
0 -
Hi, I am also trying to figure this out. I am very new to KSP or any scripting, I've just started creating an instrument for the first time about a week ago, so apologies if I'm missing something obvious.
If I have a convolution reverb, and want a single knob for wet/dry control, how would i go about keeping the level consistent throughout the whole sweep. I'm experiencing the same thing as the OP, at 0% or 100%, the level seems fine, but its significantly quieter at 50%.
This is what I have in the script editor:
on init declare ui_knob $tele (0,396484,1) make_persistent ($tele) move_control_px ($tele,690,320) set_text ($tele,"Filter") end on on ui_control ($tele) set_engine_par($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN,$tele,-1,2,1) set_engine_par($ENGINE_PAR_SEND_EFFECT_DRY_LEVEL,396484 - $tele,-1,2,1) end on
I was able to find the page linked on wayback machine , and at the end of the thread EvilDragon posted this code which i think would address this problem:
on init declare pers ui_slider fatknob (583000, 1000000) declare ~gain end on on ui_control (fatknob) gain := 367000.0 + (int_to_real(fatknob - 583000) * 0.46522782) set_engine_par(ENGINE_PAR_TP_GAIN, fatknob, -1, 2, NI_INSERT_BUS) set_engine_par(ENGINE_PAR_INSERT_EFFECT_OUTPUT_GAIN, real_to_int(gain), -1, 2, NI_INSERT_BUS) end on
I'm not sure if wayback machine changed the text for some reason, or if I'm just missing something. Kontakt doesnt seem to recognize "pers" in this example:
declare pers ui_slider fatknob
Also shouldn't "fatknob" be "$fatknob"?
Appreciate any info on what to do here. Thanks.
0 -
You must write:
declare ui_slider $fatknob (O, 1000000)
0 -
Ok, thanks. So I have modified the code in a test project to the following:
on init declare ui_slider $fatknob (0,1000000) make_persistent ($fatknob) declare ~gain end on on ui_control ($fatknob) gain := 367000.0 + (int_to_real($fatknob - 583000) * 0.46522782) set_engine_par($ENGINE_PAR_TP_GAIN, $fatknob, -1,0,NI_INSERT_BUS) set_engine_par($ENGINE_PAR_INSERT_EFFECT_OUTPUT_GAIN, real_to_int(gain), -1,0,NI_INSERT_BUS) end on
I am not sure if i modified it correctly. I changed (-1,2,NI_INSERT_BUS) to (-1,0,NI_INSERT_BUS) on the two "set_engine_par" lines because the effect is in the first slot (0).
I am getting an "end on" error with this line:
gain := 367000.0 + (int_to_real($fatknob - 583000) * 0.46522782)
But it is as I pasted here with the "end on" line so I'm not sure that that's the problem.
Does "declare ~gain" make sense here? I haven't been able to find anything about this in the manual or elsewhere online.
0 -
Alright so I finally have it figured out. First of all I didn't realize that code was intended for sublimeKSP which i hadn't messed with until now, I realize now there are several things i did not grasp at all that I now have a slight understanding of, lol. With a lot of trial and error and some help from AI i figured out that having dry gain use an exponential function while having wet gain use a logarithmic function resulted in a smooth sweep.
Here is my updated compiled code:
on init declare ui_knob $tele(0,396482,1) make_persistent($tele) move_control_px($tele,690,320) declare ~gain declare ~wet_gain end on on ui_control($tele) ~gain := int_to_real(396482)*(1.0-((exp(5.0*int_to_real($tele)/int_to_real(396482))-1.0)/(exp(5.0)-1.0))) set_engine_par($ENGINE_PAR_SEND_EFFECT_DRY_LEVEL,real_to_int(~gain),-1,2,1) ~wet_gain := int_to_real(396482)*log(int_to_real($tele)+1.0)/log(int_to_real(396482)+1.0) set_engine_par($ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN,real_to_int(~wet_gain),-1,2,1) end on
0 -
Hi. Ive tried this but it's not working as expected. The Wet jumps up immediately and the dry jumps down at the end of travel.
I've changed the knob to a slider. The knob version works better at the end of travel, but at the beggining it still jumps to-9 right at the start.
0
Categories
- All Categories
- 19 Welcome
- 1.3K Hangout
- 59 NI News
- 710 Tech Talks
- 3.7K Native Access
- 15.2K Komplete
- 1.8K Komplete General
- 4K Komplete Kontrol
- 5.3K Kontakt
- 1.5K Reaktor
- 356 Battery 4
- 787 Guitar Rig & FX
- 403 Massive X & Synths
- 1.1K Other Software & Hardware
- 5.3K Maschine
- 6.7K Traktor
- 6.7K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators