For instance if I use Expression maps, and go from Shorts to Legato, the legato mode gets set to 0, so and I need to hit the key switch 24 (Bb0) to enable legato again for the correct delay values.
So when I want to play a legato line, I set the sustain articulation in CC58 and the legato keyswitch within the same expression map articulation. If you
don't set that keyswitch, I believe the script will assume a sustain delay (witch is the fast one) when switching to the sustain articulation.
Having said that, I could add some memory to whether you were in legato or not, which might help this problem.
But worse, I experience the delays to not be consistent. Especially notice it with short notes, that it's not as much on the grid as if I would either move them or just have the track set to the exact delay time (-60ms). I also experience it with legato, but of course less obvious.
Anybody else experience this. I imagine it might be the Kontakt script or engine not being precise enough...
I would much more likely blame my script than blame the precision of Kontakt itself. Certainly different short articulations and different round robins will have different attacks. They're never going to be 100% on the grid.
What I do suggest is creating a quick passage with the delay on and then bouncing the track to audio. That way you can estimate how far off different articulations are and adjust to taste in the script. Very simply though, the script does a
Slow Delay - Shorts Delay to decide how long to wait before playing a short note. This is calculated in milliseconds but Kontakt goes down to microseconds in delay. The execution speed is going to be so fast that, if the script works properly, the inaccuracy would be imperceptible.
If you have a case that reproduces what you're talking about as a midi file in these shorts, I'd be more than happy to take a look and try to improve things. That does sound like a pain!