is it possible to reset 'global round robin counter' in Kontakt 4?

Sampler and Sampling discussion (techniques, tips and tricks, etc.)
RELATED
PRODUCTS

Post

Quick question to anyone who knows how KSP works. I want to make an instrument playback identical each time, specifically I want 'round robin' index (or what ever it is called) set to zero each time playback starts.

I checked NI forums and there are solutions, but each of them includes writing your own 'round robin' script - this way, I know how to do it. It seems like unlocking an open door though, is there no system variable you could simply reset?

Post

Press the "!" button in top right corner and the whole Kontakt engine will reset. Unfortunately you cannot automate this in a DAW, so you would ideally indeed need a script for that to make it repeatable.

Post

Yes, but I want to reset from kontakt script level. I'm guessing that, it's impossible apart from not being an elegant solution?

Post

Yeah, that's not possible.

Post

In which case it look like I will write my own round robin... Seriously the more I know about KPS, the less I respect it.

Post

Some third party developers let you do it

Post

I let myself do it. I did it already, actually. I just had to turn the groups on/off manually from script... Not really complicated, but it seems so backwards. Anyway, case closed. I praise evil powers that I didn't waste more time searching for that mythical engine variable that I imagined should exist. :hail:

Post

Using allow/disallow_group() from the script is very cool, as you can do various things you cannot do with Group Start Options - for example, you can create arbitrary round-robin chains of unequal lengths, and you can have random non-repeating RR for multiple sets of groups (this is totally not possible with Group Start Options).

I don't think you should lose your respect over KSP. It can do a lot. :)

Post

True, it's easy and creates new possibilities. I see that one can do a lot in KSP, it's just the way some things has to be done, that brings a heavy facepalm upon me.

Post

Would you share the RR-Reset script with me?
I´m not really a programmer and don´t know how to build an "allow/disallow"-script from scratch.

The only thing i need would be a script that allows me to reset the RR-counter via midi so i can reset the playback every time it starts.

Thank you very much in advance for any hints!

Post

Point is that you can't reset Kontakt's internal round robin, you need to disable round robin functionality entirely and write a script which does it by assigning incoming notes to groups. The most simple script would look like this:

Code: Select all

on init

	declare $round_robin_position
	set_listener ($NI_SIGNAL_TRANSP_START,1)

end on

{when new note received}
on note
	{set the note properties, so it will not trigger any group}
	disallow_group($ALL_GROUPS)
	{set the note properties, so it will trigger current rr group }
	allow_group($round_robin_position)
	{move round robin position}
	$round_robin_position := ($round_robin_position +1) mod $NUM_GROUPS
end on

{reset round robin when playback starts}
on listener
	if($NI_SIGNAL_TYPE = $NI_SIGNAL_TRANSP_START)
		$round_robin_position := 0
	end if
end on
It will rotate notes though all available groups and reset round robin position on transport start (playback start in DAW).

Post

Ah, i see.
So this gets complicated as soon as several Velocity layers come in etc.

I really see why you mentioned that KSP does some things in strange ways. Shouldn´t it be a pretty easy task to tell Kontakt to reset the counter? (Or even: go back or whatever).

Post

drym wrote:So this gets complicated as soon as several Velocity layers come in etc.
Not so much when you figure it out, you just need to script round robin instead of setting it up in Kontakt menus. I don't quite see why velocity layers are relevant, it's all based on group index. You set which note goes to which group.
drym wrote:Shouldn´t it be a pretty easy task to tell Kontakt to reset the counter? (Or even: go back or whatever).
Sure, it should be easy. It just seems, NI didn't make such option available.

Post

The instrument i am about to edit has 3 vel. layers and 5 RRs in total.
Each velocity layer has it´s own group which might does some additional filtering or similar in the group FX.

I can imagine how this works if the group count is equal to the RRs...
should have learnt to program earlier this life :-)

Post

It's never too late to learn stuff. And Kontakt scripting ain't rocket science. You can break it down to step by step thing, like...

Code: Select all

...
if($round_robin_position =0)
   allow_group(0)
   allow_group(1)
   allow_group(3)
end if
if($round_robin_position =1)
   allow_group(0)
   allow_group(4)
   allow_group(5)
end if
...and so on
If you think about it, you can do more this way than with menu stuff.

Post Reply

Return to “Samplers, Sampling & Sample Libraries”