A method to Sync VCV to a DAW. (4 MIDI Only?)

Hi All.

There seems to be quite a bit of discussion about this issue, various methods to come to grips with it and the fact that it depends on your setup.

This said, I do everything with a laptop and a mouse. No external controllers and just the available drivers from windows. (WASAPI) I tried ASIO4All, but that didn't really work that smoothly. And, oh yeah,I don't record, playback or edit any audio in the DAW. For audio editing I use Wavosaur but I'm looking at Audicity for this. So everything is freeware. I don't make any money with my sound/music fiddling so I prefer to keep it as low cost as possible.

Back to topic: how I sync VCV to my DAW (Cakewalk, but it should work with any DAW with even basic midi capabilities).

Components (software used): Laptop Win 10 Pro, Cakewalk, VCV, loopMIDI.

Also important to note; I do all the basic work in VCV untill I get to a point where it becomes necessary to start arranging stuff. This where the DAW comes in.

First off: start and stop works from within Cakewalk where start/stop messages are transmitted via loopMIDI port 0 to the midi-CV module in VCV. These start/stop commands go to a sum module of which the output is sent to the module which starts/stops playback in the VCV patch. (In my case this is an Impromptu clock.) This works flawless provided you're in cakewalk. At this moment I have no reliable method (yet) to start/stop playback from within VCV. It probably is possibly through assigning specific midi events for specific cakewalk commands. I'll have to look into this further.

Secondly there's the sync issue. With the patches I'm working on this goes as follows: next to the (main) clock that drives all the loops, sequences and other events in the patch I add another clock which receives; a; a cv signal patched to the bpm input and b; a reset trig every 4 beats. These signals go trough the same midi-cv module as the start/stop commands.

The actual method is as follows; in the patch I want to arrange (and which has already a defined bpm value on the main clock) I check the voltage from the bpm output of the main clock (the one that drives the entire patch). I then look for the note that comes closest to that value. In case of a bpm of 152 this is E4. (bpm 152 on the impromptu clock equals 0.341 volt, E4 equals 0.333 volt). Next I adjust the tempo to that same bpm in cakewalk (or any other DAW), so if the main clock in vcv runs at e.g. 152 cakewalk runs the same tempo; 152. To return the necessary voltage to VCV and the sync clock I make a midi track in cakewalk (or any DAW) and route the output to the same midi output and midi channel as the start/stop commands. In my case loopMIDI port 0, midi channel 1. On the midi track I just created I make a clip of say sixteen bars (easier to copy later on) where I insert the note E4 on the start of every bar with a lenght slightly shorter than the full bar. There has to be a gap between consecutive notes because I need a trigger every bar. It looks like this:

![Screenshot_CW clip 16 bars|690x225](upload://waNSUweC3GiZ1V7jRuQNInKpplM.png)

I loop this clip, start cakewalk and go to vcv. In vcv I patch the cv output of the midi-cv module to an attenuator if the cv value returned from cakewalk does not match the value I need for the bpm of the sync clock exactly and adjust accordingly. In case of a tempo of 152 I'll have to raise the value from 0.333 volt (E4 note value) to 0.341volt (bpm 152 value on the impromptu clock). The output of the attenuator is then connected to the bpm input of the sync clock. (Not the main clock.) Next I take the gate output of the midi-cv module, send it to a gate to trigger module (I use the count modula one) and connect the start output (start of the gate signal transmitted every bar by the midi note in cakewalk) of that module to the reset input of the sync clock. If this sync clock is not reset every bar it starts drifting and doesn't stay in sync with the cakewalk tempo. (I suppose one could have an even tighter sync when resetting every two beats or even every beat, but I haven't tried this. For my purposes however a reset every bar seems sufficient.)

Thirdly: all that remains is to connect the run and bpm outputs of the sync clock to the main clock and you (should) have a patch that runs in sync with your DAW. Don't forget to set both clocks to perform an internal reset on stop (right click menu) and the main clock to send a reset pulse on stop. That way all your sequencers (or whatever module needs resetting) are reset when stopping playback from your DAW.

The reason for a sync and a main clock is that the sync clock can no longer be divided beyond 4 because it resets every 4 beats. If you don't need divisions beyond 4 I suppose you could use the sync clock as the master clock, but I haven't tried this yet.

The above setup works fine for my purpose which is to send midi control data to the mixer to control volume and panning. In one patch I used midi notes via the midi-gate module to trigger cymbals at given bars/beats. I think it best to use a different midi channel to send midi control data to vcv and keep the first channel solely for the purpose of syncing. I'd like to reiterate that I do not use this setup to play or record audio with the DAW. I might in the future but for the time being I stick to midi data.

As a final note: I'm not a technical person; I have no mathematical skill, I know nothing about programming and a lot of the more technical/logical modules for vcv are a complete mystery to me, even after reading the manual (if there is one). I simply use my common sense and that good old method called trial and error. So, if some/all of the above sounds like nonsense to a more technically inclined individual that's fine. Only, it works for me, so it'll probably work for others as well. Which is the most important bit and the reason why I share this. I know many of you are eagerly awaiting rack 2, but in the meantime...

If you have any questions or comments, feel free. Beneath is a sample patch for vcv with some notes included.


[Test MIDI Cakewalk 0-0.vcv|attachment](upload://sgjRflWViUy8b34acf8c40eN15E.vcv) (275.6 KB)

Apparently something went wrong with my text layout so I put the embedded files here. (This is how good I am at coding.) :crazy_face:

Test MIDI Cakewalk 0-0.vcv (275.6 KB)

For those who use ableton the sync works with CV tools from Ableton.

The way I do it I have CV Clock Out on channel 1 in Ableton with Bridge that sends clock and transport to Impromptu Clocked bpm and run, from Core Audio where its set on Bridge. So I have extremely locked and tight clock, well connected, and I just had to configure track delay in ableton and thats it. Couldnt be happier. Only if rack doesnt crash so much it would be even better

have you tried getting help from other users here, by sharing the crash from the vcv log file?

No, it doesnt crash always, it crash when theres hardcore modulation and after seeing log info before it was usually because of a faulty module. As its open source all kinds of modules are there. So i only use proper modules now

Thank you for sharing this. Cool trick converting the bpm to note value. This is now the fourth way I’ve seen to sync clocks between a daw and VCV. That’s why I love modular. Musical Legos!

You're welcome.

As I have no dedicated audio driver I wanted to stick with midi.

Currently I'm composing a midi track for chords, editing the control data at the same time, just to see how far I can stretch the boundaries.

So far, so good.

Try and look here:

How it works best now is to have VCV Rack be the master when syncing via MIDI. For Rack V2 (any day now) Andrew has improved MIDI latency and jitter a lot, so will be much less of an issue.

No longer true as far as I'm concerned. My method works fine and reliable for my purposes.

Nice! a VCV/DAW virtual bus on midiloop was also the solution for me. as for handeling the jittery clock, I just manually set my daw and impromptu cock at the same bpm, and use the play trigger to sync the two, it works perfect! it just doesn’t allow tempo changes. this note trick will help! maybe using notes to adress specific cv value to change the tempo would work without need of calculation (bog audio ADDR)

Nice going. What daw is it you use? With cakewalk even setting clocked to the exact same bpm didn't work for me. It started drifting off sync after a couple of bars. I checked with a metronome and I could hear the sequencers losing sync. Hence the need to reset the clock every bar. For me that works fine. I can start somewhere in the middle of an arrangement and things all stay nicely in sync as long as I start on the first beat of a given bar.

For tempo changes: I think you could use an automation lane for that if you need gradually changing tempo. You'd have to use different modules (midi-cc and midi-gate probably), but with some creative thinking this should work. If you have an abrupt tempo change that shouldn't be a problem, although you'd need a sequencial switch to change from one voltage to another. But that should work fine too.

By the way: in all the years I've worked with synchronized equipment I've never succeeded in getting two independently running clocks to match, not even starting both with the same trigger device. Even if they initially seemed in sync, given enough time they started drifting apart. I'm surprised this works for you. But, if it works, it works. Good for you.