Feel like I’ve been driving myself a bit crazy with this one, and wondering if anyone could offer a sanity check:
I’ve been using the VCV CV → MIDI module to drive some (other) VST synths in Ableton, and I’m having a blast, but i’m noticing that im having some consistent issues with ‘ghost’ double notes when changing pitches. (see the screenshot w/split second MIDI notes on onset of next note).
As best I can suss out, its an order of operations thing where the gate is ‘firing’ the MIDI note from the converter module a fraction of a second before the new pitch information arrives, but I’m a little stumped on how to get round this. In MaxMSP land it feels like this would be a ‘hot/cold inlet’ kind of thing, but not sure where to turn in VCV - i could do a trigger delay or something, but feels like this introduces even more issues.
Is there something obvious I’m missing? Would be super grateful if anyone could steer me in the right direction - tysm!
m
Hi all - apologies i might be missing something obvious/shouting into the wind here, but I’ve been trying to diagnose the issue, have played around with VST VCV vs standalone, different audio drivers, syncing clock speed with host DAW, etc but still hitting the issue of the ‘ghost’ onsets each new pitch.
What i did notice though, is that it seems that the issue is indeed the gate high and new CV/pitch information arriving at the CV → MIDI module at slightly different times, causing the misfire. I was able to solve this by putting in a ‘dummy’ offset module in between the gate and the CV → MIDI module (picture below) to essentially delay the gate by a sample, allowing the new pitches to ‘catch up’, but this seems a bit kludge-y.
Is there something I’ve missed, or another best practice here? Thanks so much all!
Every cable in Rack adds 1 sample delay, so you would need to add something on your gate cable line in order for it to arrive at the same time.
There are a couple of sample delay modules available, alternatively you could just use a vca or something simple so that the amount of cables on the v/oct line and the gate line equal.
ah thanks! this definitely squares with what I’m noticing - like, having to compare the amount of modules the clock ‘goes thru’ and then adding dummy modules accordingly to make sure both the CV/pitch generation and gate high have the same ‘length’ to the CV → MIDI module.
This sounds like, kind of wild to have to add/subtract dummy modules each time though while patching - does anyone know if this is best practice for this module, or theres some kind of ‘official’ documentation/approach to this?
Good solve! I think the one-sample delay doesn’t bite that often in this situation because a more conventional patch (not that there’s anything wrong with what you’re doing!) would typically drive the pitch and gate from a single sequencer module.
The official solution is probably what you’ve already mentioned: VCV Gates with a very small delay. You’re unlikely to notice the latency in this application–obviously, test that assumption!–and the gate would be safely moved past the pitch cutoff (we’re talking ~45 samples at 44.1kHz) so you could do whatever you wanted to the pitch signal.
To be fair, you can run into this kind of thing in hardware modular as well, if you have digital modules (e.g. quantizers) in the pitch path.
In general, the cable delay can take some getting used to. What you get in return is complete freedom regarding feedback patching and a very simple and performant execution model. Here’s a pretty extensive discussion if you haven’t seen it.
By the way, as I’ve said elsewhere, I think there should be a non-resampling, sample-accurate, DC-coupled delay in VCV Free–I’m going to put together a FR when I have time. In the meantime, Grande VSD has four lines between 1 sample [meaning no-op ] and 9 samples in 2hp; Grande SampleDelays has a +1 and +2 for each of three inputs, with internal normals. If you’re turning a delay in an audio-rate feedback loop, Sckitam WaveguideDelay is amazing (guessing the Surge XT Tuned Delays are also top-quality). There are other good options, including a bunch of NYSTHI.
ah! BIG tysm yall! Sanity check totally helps here - glad to know im not (entirely) crazy + on the right track to solve.
This totally makes sense re: being a non-issue when its a matter of “lemme send a few seq3 out to my polysynth to do Tangerine Dream arps”, but gets a bit weirder when it’s a matter of “im going to make a tangled mess of generative CV and then send it out to a bunch of Kontakt instruments playing totally uncanny valley avant-VST saxophone” ha.
Really appreciate the resources all above too re: modules + threads - looking forward to diving in!
and more recently a lot of bonkers modulation madness back and forth between audio/synthesis zones and game engine simulations via OSC (and just general zones)
Instagram