Inconsistent midi notes - skips, glitched

I've been sequencing external gear with tidal midi and have found that the notes it spits out often skip or go out of time... as if sometimes tidal takes a breath and then tries to fit in the notes it missed. The result sounds like a very unstable clock!

I've tried a number of things - increasing audio buffer, changing settings in supercollider's startup.scd, closing everything except tidal and emacs...

I'm guessing there is just something weird with my system... has anybody else experienced this? any tips?

works fine for me.

perhaps Tidal re-orders (arbitrarily) MIDI events that occur at the same time, and external gear gets confused? e.g., send program change before or after note.

can you share source code (a tidal pattern) for a simple test case? preferrably not using any specifics of your gear, so it's easier to replicate elsewhere.

here's some example code (I'm sending this to the Volca Drum, for which midi channels 1-6 are different sounds). I think I removed all my aliases and shortcuts so it's readable:

p "fullstack" $ stack [
  -- A
whenmod 8 7 (bite 16 "{0*4}%4") $ stack [
        struct "t*4" $ n 0 # midichan 0
        , struct "t*16" $ n 0 # midichan 1
        , struct "[~t~t]" $ n 0 # midichan 2
        , struct "t*4" $ n 0 # midichan 5
                        ] # amp 1
] # s "thru"

where "thru" is set up in supercollider like this:

	~midiOut1 = MIDIOut.newByName("Midi Through", "Midi Through Port-0");
	~dirt.soundLibrary.addMIDI(\thru, ~midiOut1);
	~midiOut1.latency = 0.02;

Honestly it didn't occur to me that it was the hardware - I'll try using tidal built-in samples and other in-the-box synths to see if it happens there too. Thanks!

ahhh maybe this IS the gear itself... aw dang...