Midi clock renoise-vcv rack

That would be a nice feature … but then again, it is not the fault of @marc_boule 's Clocked module. Somehow these jitters are from within the midi-core of VCV. Sometimes the boolean to generate a Pulse in dsp::PulseGenerator is simply not triggered, but I can’t find out why. @moDlls MidiPoly16 has the similar jitters in BPM but produces even better Start/Stop Pulses than VCV Midi-CV.

If I take Ardour f.e. it does never change the BPM when syncing to a Midi-clock, but for Ardour the BPM is just a sort of Grid in Time, it does not change the Audio when chaning BPM.

I did a whole bunch of tests now an must say … I give up :joy::joy: … my coding skills are not that good to really pin down what the coding-pros can’t handle :stuck_out_tongue_winking_eye:

BUT … I solved it like this =>

2 Clocked, one connected to the unstable PulseGenerations from VCV Midi-CV, but reacts nicely to Start and Stop and a second one with a fixed BPM

This way at least I can make some overdubs and layers in Ardour and use their Location markers to push me from jamming to recording/producing :smile:

2 Likes

cleaver

Tested this idea yesterday, clock is stable, but the start is out of time, so not usable for the workflow I had in mind :sob::weary:

1 Like

it is what I mean with the clamp option,is similar to your set up plus we need that every some beat the clocked get sync.

@LarsBjerregaard @David @Schabbes

because this behaviour has nocthing todo with our beloved Clocked module, I took the dicussion to a seperate topic

1 Like

I think the resync would be potentially disruptive if the difference in phase is big enough, so not sure this would work well. I thought (and tried) implementing some averaging, but I didn’t get it to work well enough, so I dropped the idea. I might re-attempt that in the future though, but in the end, I opted to have Clocked sync on every pulse the best it can do, so as to always be in sync as fastest as possible. This does unfortunately make it susceptible to jitter.

For added context in this thread, here’s an interesting except from the manual of a very popular Eurorack clock module (Pam’s New Workout). Although no USB is used in the VCV use cases discussed in this thread, I think it still recaps well how midi clock is jitter-prone.

It is not recommended you sync Pam to computer sourced MIDI clocks. Modern computers tend to give MIDI hardware (particularly over USB) a low priority compared to other system events. This notoriously leads to timing errors in generating the midi clock and thus any slave devices will not sync correctly. For syncing to a computer it is recommend an audio track based clock is used or you use Pamela as the master with MIDI clock from the expander to DAW.

6 Likes

Time spent trying to get stable sync through midi will just lead to hair pulling and gnashing of teeth…

Best thing you can do is give up on that and start down the audio pulse sync path which will quickly lead to sync heaven and you’ll kick yourself for spending all that time trying to get midi to work as you’d expect it to.

3 Likes

Giving up is not in my nature :smile: Look at the thread mentioned above, there might be a development on midi-clocking :wink:

1 Like

Fair enough and best of luck with it :slight_smile:

1 Like

Could you explain how that works Rémi? I can’t mentally bridge an audio pulse and the Clocked module. What modules and connections are involved? Thanks!

Just send the audio pulse to Clocked. There is no difference in CV and audio, a CV trigger is nothing else than a short pulse.

2 Likes

Ahh, I see, hadn’t realized it would be that simple. So it’s simply a (24PPQN?) trigger by audio instead of CV. Does it matter whether it’s uni or bi-polar, 5V/10V? So this is simply exploiting the sender stack (and receiver?) prioritizing audio higher than MIDI clock and thus getting less jitter and drops?

As long as its above 1v / 2v it should not matter

Yes it’s as simple as that.

To explain a bit more my setup, I use ableton live and have a MIDI track containing a sampler with the Pulse.wav sample. I send it to a Soundflower out (which is a virtual audio loop on OSX), with a negative delay on the track. This delay is used to compensate VCV latency so Ableton and VCV are perfectly in sync. Finally, from VCV I route my Audio IN to the clocked BPM input, and adjust the PPQN setting to whichever is my MIDI pulse pattern in Ableton.

And If you want to get funky you can also add more tracks to send trigs for Reset, pattern changes, etc… :wink:

1 Like

Can you say how much channels Soundflowers is support, up to 64 I hope?) And btw any similar solutions on audio routing on mac (paid or free)?

Yes 64 channels. Soundflower is Mac-only and free, it’s discontinued though. There’s also another project called Blackhole which is aimed at a replacement but I didn’t try it yet.

1 Like

I installed with:

brew cask install soundflowerbed

on my Mac (Sierra) and it works great. But yeah, Blackhole is “supposed to be the future”… it’s in pretty early stages though, as far as I understand, so don’t know if it’s quite production ready yet.

1 Like

Thanks for the explanation Rémi, it’s starting to make sense. I can see that you still need to do some latency compensation, but that’s unavoidable I guess. So, from your explanation, I’m guessing that pulse.wav simply contains a single cycle of a square wave pulse, and the PPQN is determined by how often it’s looped/fired by the MIDI track, correct?

This technique will work with software-to-software, but can it also be made to work between software-hardware-software, that works with MIDI clock/sync? For example, can this technique be used to sync an Ableton Keystep perfectly with VCV Rack, and how?

Yes you got it. About the offset, it’s just about starting VCV rack a little earlier than Ableton, as the clock pulse will be sent to the Audio out after Live’s processing, and then VCV has still to do its processing. So it doesn’t add latency as per se, it just starts VCV a little earlier so both finish processing at the same time.

In this scenario I use Live as my master clock, and send Midi Sync / audio Sync from ableton to external hardware. I just treat VCV as another bit of hardware (even if it’s more than that :slightly_smiling_face: )