Kontakt 8 MIDI Clock Jitter/Glitching in Performer

Greetings all! I’m significantly new to Cantabile, so if this problem has already been addressed and solved, please feel free to point me in the right direction, otherwise your sage input is deeply appreciated.

Setup: I am currently running Cantabile performer purely as a VST host and audio/midi router for myself during live gigs and rehearsals. In each of my songs I am running three linked racks, each with a Kontakt 8 instance and a multi instrument loaded with plugins routed to different MIDI channels via states, which works great as all instruments stay loaded and active per song and routing via state binding is quick and easy. I did this based on the tutorials and reading here but if after reading there is a better setup to limit time changes between songs please let me know!

Currently upstream I send MIDI clock from my Walrus Audio Canvas pedal in my hybrid rig pedalboard to various other boxes and off to my Volt 476 and Cantabile. Cantabile receives and changes tempo as anticipated. I have the clock sending five pulses and Cantabile set to slow/stable and rounding to the nearest 0. For downstream reasons I cannot use Cantabile as the master clock, which I’ve read to understand is of course, the ideal solution.

The Issue: Whenever clock is sent, there is massive audio jitter while, I assume, Cantabile transmits the changes to the Kontakt instances which all mad dash to change tempo and sync up. When I wasn’t limiting the pedal to five pulses this made everything completely unplayable because of the continuous stream of data, whenever I advanced songs with my clock pedal via. Now with just five things are just completely unplayable for the roughly 10 seconds after the pedal sends the song change PC that it takes the new tempo to take hold and settle down. This is not as problematic between songs, but it also does this any time I attempt to use tap tempo to match the rest of the band and compensate for drift if I want to play a tempo synch’d instrument.

Notes:

  • My buffer is currently a whopping (but tolerable) 512 and DDM in Kontakt is set higher for more complex sample based libraries.
  • I have 32gb physical ram and am not hitting anywhere near the ceiling. I have tried to limit anything that hard spikes the CPU and seem to be running around 20-25% engine on average according to the cantabile header
  • Cantabile is set to multi-core (14 physical cores, i9 machine) and multi-core is turned OFF in Kontakt 8 in all instances
  • I dont use any transport based daw-type behaviors, no media players etc
  • All switching and routing works perfectly well and MIDI behaves as normal

Thoughts:

  • I have thought about creating a tempo synch’d instrument rack (limited) and just turn off external synch for the Kontakt racks I have currently as a last resort, crossing my fingers that it would be so few instances that there would be less jitter/glitch on changing to songs or states that use synch’d instruments. I would rather just load them in the existing racks, but is this even worthwhile as a course of action?
  • If I completely disable clock synch in Cantabile and just use the tempo control per song, can I send a MIDI cc via binding to the tap tempo button to accomplish this with a normal pedal or button press, or would this still cause massive jitter as it’s not the midi event of the tempo but the actual Change in tempo that causes the issue?

I’ve read enough here to understand that external clock is the Actual Devil but if there’s any way to manage this it would be a significant experience upgrade for what is already a game changer of a product here with performer! Thanks in advance for any and all wisdom, sage advice and help.

Hi @redoctobrist!

I have a very similar setup but haven’t experienced what you describe.

My Setup: Cantabile Performer with songs represented as linked racks all loaded together (up to 16 at a time) and switching between them via song states, just like you. Cantabile is set to external clock sync, with master clock coming from Multitracks Playback, but I have Cantabile set to Balanced. I have Kontakt 7 instruments, mostly Straylight, Pharlight, Cloud Supply, and a few others. (No Kontakt 8 yet.) Like you, I mostly use 512 sample buffer, have plenty of ram, use 14 physical i9 cores, and have Cantabile set to aggressive multicore. No media players.

Very small Issue: When my external clock switches songs and jumps to a new tempo and I’m using a tempo-locked sound, there’s a momentary glitch that sounds like somebody fast-forwarding a cassette. It lasts less than a second (and I can tell you how to fix it if that’s the only issue). But I’ve never had 10 seconds of unplayability like what you’re experiencing.

Is it possible that this is a problem that’s specific to whatever Kontakt instrument(s) you’re using? Maybe it’s worth trying to duplicate it with a non-Kontakt instrument to test whether it persists?

–Kevin

Thanks for the reply! I definitely think it has to do with using more deeply sampled cinematic/scoring style instruments like Lores/Fables, orchestral libraries, etc. I lighten the load (mic positions/reverbs) for RAM so when active they all play and load fine, but am still seeing the very spiky glitches where in my case it is definitely Not a fast forward sound more like static. Though, how did you address your challenge? Might be some relation! Currently I either have to stop tempo sync entirely or stop playing completely, no trails, between songs, which is sub optimal when one cue goes into the next.

The glitch I described comes from the sound a tempo-locked instrument makes when exposed to a tempo that glides instead of staying steady. So it has nothing to do with resource load. For example, if I’m playing something that has a bpm-based echo, and Cantabile glides the bpm from 70 to 110 over a 0.5 second interval, the echo will weirdly throw in a bunch of pitch-bendy extra echos as it tries to interpret extra “beats” in that 0.5 seconds. With a deep-sampled instrument, I suppose it might sound like static if it’s jumping the sample position around as the tempo transitions.

Here are some thoughts/tips:

  • I wonder whether having Cantabile set to slow/stable might be working against you, since that will lengthen the time Cantabile takes to transition to the new tempo. Have you tried Balanced or Fast to see whether it makes a difference?
  • Make sure you’re on build 4342 or later, and in Cantabile’s MIDI Sync settings, uncheck the box for “ignore clock start while playing”. (This might have nothing to do with your problem, but it was the source of many clock sync transition problems for me until that feature was added to Cantabile.)
  • I have my linked racks’ enabled/disabled status set to state-controlled, and I disable all but the current and previous song’s racks in each state. This prevents the impending next song’s plugins from seeing any (wrong) tempos until I switch to that song. (Note that disabled does not mean unloaded. Enabling a rack during live performance doesn’t load anything; it just changes its processing mode, so it’s instant.)
  • The above trick still causes a previous song with tempo-locked sounds to glitch as it fades out during the switch to the next song. I can usually work around that by turning off each plugin’s bpm-sync settings at the moment of transition. This causes it to adopt some stable tempo not defined by the external clock during the fade-out, which is usually good enough. To do this gracefully, I find all the bpm-sync buttons in the plugin and set those params to state-controlled in Cantabile, and then I turn them off in the other song states. That way all the plugin’s sync params instantly turn off when not in a state that has the right tempo.
  • If all of the above fails, I have a nuclear option: When I really need multiple plugins to simultaneously play at different bpm-locked tempos (e.g., during a transition), I load each within PluginGuru Unify. Unify is a plugin that can host other plugins, and it can serve its own transport to them. So I can configure each Unify to ignore the external clock during transitions and run its plugins at a predefined, stable bpm.

–Kevin

Interesting! Thanks for the tips. As a follow up: For your multis are you using rack bindings to midi routes to control which instruments are heard per state or are you using something like the Kontakt mute button on the individual plugins inside Kontakt between states? Just wondering if there are more/less optional switching methods to help reduce the issue. I will check out the checkbox for clock start for sure though!

I either use rack bindings that disable midi routes, or I fade the instrument’s gain out gradually (e.g., over 1 second), because muting it with the in-plugin mute button is usually too jarring. (Muting it cuts the sound off mid-note, which sounds like a soundboard error, and the back-of-house folks go nuts trying to “fix” it.)