I spend the last few days with about 100 tests to get a stable midi-clock IN and OUT of VCV Rack to sync recording with Ardour and Renoise and found 2 main issues
- if receiving a Midiclock in VCV’s Midi-CV or @modll’s MIDIpoly16 in 24 PPQN mode the BPM jitters because some dsp::PulseGenerations are dropped (somewhere in the void??)
- If sending a clock (x24 ofc) with CV-Midi, it is pretty stable, BUUUT the Start and Stop Messages (0xFA and 0xFC) lack or get dropped sometimes. Both behaviours also have slight differences depending on the VCV sample rate used.
There are already a couple of topics regarding Midi-Clock sync in this forum and on github and there is already a workaround by sending an analogue Clock Pulse (or Pulse.wav) to VCV, or using Beatstep Pro as master => @Omri_Cohen made a nice video on this, @VCVRackIdeas has another video using the VCV Bridge to get a stable syncing in 0.6.
VCV already uses rtmidi and the sync24 (24 PPQN) option, so the core-functionallity is already build in.
I solved a partial on the Receiving a clock with MIDI-CV by chaining 2 Clocked and on uses a fixed BPM, but then, like on sending Midi-clock, I still have the problem, that the startpoint of recordings differ on multiple recording aproaches like somehow the Midistream is queued or buffered somewhere.
After reading the midi-core implementation of VCV regarding the modules MIDI-CV and CV-MIDI and comparing it with moDll’s MIDIpoly 16’s code and the dedicated midiclock.cpp test examples of rtmidi on github I came to some conclusions
- A dedicated Midi-Clock sync module, that directly listenes to the Midistream only for 0XF8 to 0XFC without queueing anything might better the stability
- This module could act as independent clock master and slave
- Renoise is known for it’s stable Midi-clock, that btw, is sends out permanently if set a master (like a VCO)
- and again => => my programming skills are not good enough
Because there is a lot of development going on and a lot of different approaches, I wanted to gather some feedback on this module idea first and if this should be a good idea yes …
Looking for module-developers, that will make this real.
To answer some questions in advance:
Q: why don’t you simply use an external analogue clock like ERM or a Beatstep or …?
A: because I’m pretty broke most of the time and some other HW synth have priority (and befor that my Kids ofc . one is in puberty, so parents understand )
Q: Why don’t you use VCV Bridge or send a Pulse.wav?
A: I tried but the setup is a bit complicated, plus, if we solve this as a module it might have some benefits for the midi-core in general
Q: why do you use Ardour and Renoise … xxxxx is much better in everything?
A: because (just a joke question cause - on other discussionboards that would be the first thing getting asked turning all the thread to a big fight over a software - luckily our VCV community is different)