I’ve got a daw less set up including a Keystep pro Arturia and an Elektron Syntakt.
I would like to send Program Changes from my Keystep pro to the Elektron Syntakt, to change patterns simultaneously. Because I have noticed some delays in Program change (it is a well known problem by Elektron machines…the Syntakt receives Program Changes from the KSP, but it changes pattern systematically with a delay), I’ve bought the Blokas Midihub to solve this problem.
I tried to apply a preset I found on the community forum. It is better, it seems to work, but I’ve got the feeling that there is still a micro-delay that remains between Keystep pro and Elektron Syntakt. It doesn’t seem to groove a lot… though I’m not sure on the preset I use…
The issue is that you add about 5 milliseconds delay every time you change the program, and there’s nothing that compensates for it.
There’s a couple of ways how to go about compensating for it.
Using Sync Delay:
Sync Delay can inject Clock events to shift the sync forward, but at 120BPM, one Clock event means shifting forward by around 20.83ms, so you’d want to do it about once every 4 program changes. Higher BPMs shift by less milliseconds, as the period between Clock events is lower.
The time between Clock events is given by 60s / (BPM x 24)
You can add Sync Delay (not MS version) just before the TO MIDI A, and set it to a negative value (like -1) - when it receives the Start message, it will produce the value mount of Clock events. 6 Clock events make up a 16th note. This param can be MIDI mapped to a knob, and you may shift the sync slightly forward and back with a knob. Use the Low and High mapping options to reduce the knob range if desired.
It would be possible to make it activate every N program changes.
The draw back of this is that it depends on the BPM you use a lot.
Use Midihub as the master clock for the setup, and make use of Nudge Up and Nudge Down params to resync Elektron to the rest of the devices. You would use two BPM pipes - one for most of your setup, and another just for Elektron. You should map the Nudge Up and Nudge Down parameters to external MIDI controls, so you can realign their sync with the rest of devices.
Thanks @Giedrius ! I’ve tried using Program Changes at 120BPM, set Delay By to 20ms or 21ms, and place in Sync Delay with -1 amount just before the MIDI output pipe
I’ve the feeling it is worse… the Elektron is less sync with the rest…
Please highlight the MIDI OUT pipe, so the MIDI Monitor is logging its events, wait for a few seconds, trigger a program change, wait a few seconds more and do Settings → Export CSV… and upload it here, together with the preset itself that you used, I’ll see if it’s as expected.
.csv is in the allowed extensions list, that’s odd. It could be that uploads get automatically limited for new users, just in case I have raised your user level to regular trusted member, please try uploading again.
The sequence of events seems to be as expected - there’s a Clock event between the Stop and Start events that the Elektron device would have missed during the requested Program Change, but the Sync Delay compensates for it immediately after Start event goes through it, and then the Clock events continue in roughly 21ms period.
In theory, the devices should remain in sync.
Could you describe or upload some audio / video recording showing what you see?
I tried to upload again the CSV file but it doesn’t work. I changed the extension to .txt (like @resonotter said) and now it is working. Delay20msSyncDelay-1.txt (30.1 KB)
I’ll try again to run a sequence and make a video asap ! thanks !
Should it also work with a lower or higher BPM (than 120 BPM) ?
I send you a sound where you can hear clearly the delay when sending a PC from Keystep pro to Syntakt when using the preset you proposed to test (with the test of Delay 20ms and Sync Delay by -1).
(Kick is coming from Syntakt = I only programmed a Kick on Syntakt / The percussion is coming from Moog DFAM synth which is synced (clock out) by Keystep pro)