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.
Enjoy.
[Test MIDI Cakewalk 0-0.vcv|attachment](upload://sgjRflWViUy8b34acf8c40eN15E.vcv) (275.6 KB)