Negative Delay CC Curve Issue (with example project)

It seems that this exact issue may have been reported before but went without meaningful investigation or solution:

I’ve made a minimal project equipped with MIDI Monitors to demonstrate the issue. The screenshot shows the results across tracks with deep negative delays (and one without to compare). It seems the nodes of the CC curves ( not the generated events between the nodes) are causing issues with some “prefetch” buffer when the negative delay is substantially increased. Also, the issue seems to worsen if the “MIDI Latency Mode” in Edit > Preferences… > MIDI is lowered; however, I could only recreate that having any effect with my actual orchestration project, not with this simplified example. Bringing the setting to it’s max (“High”) did practically nothing for me, and the screenshot here was generated with the setting to “High” as well.

The more nodes used, the more opportunities there seems to be for scrambled CC data. The misbehavior is also consistent throughout each playback (no randomness).

For me, this is causing erratic MIDI CC behavior for a sample library capable of utilizing a 400ms lookahead (Modern Scoring Strings by Audiobro). The MIDI Monitors reveal a lot of out-of-order events, and some events aren’t even arriving in the order they’re “positioned” (according to “Position” column). The out-of-order-ness of this is also apparent when using an external MIDI monitor as well (Kontakt factory multiscript) which verifies that this isn’t just a bug of Cubase’s MIDI Monitor effect.

Hopefully I’ll be able to provide enough info so the devs can perhaps get to the bottom of this one. I’m aware that these CC curves are relatively new to Cubase, so it could be as simple as an uncaught oversight. One can hope.

Screenshot (mistakenly) taken in Cubase 11.0.20, but I’ve gotten the same results in Cubase 12.0.20.

In case there are issues with the project file (as I’ve never shared a *.cpr file before), the project is just 3 MIDI tracks named after their negative delay values each with a MIDI Monitor MIDI insert. Each track has the same MIDI data: no notes, just the CC data as shown in the screenshot. Also, each track has both their Input Routing and Output Routing set to “Not Connected” as an attempt to exclude the influence of other MIDI devices. There is a measure of silence before the shown MIDI plays (necessary given the large negative delays). Tempo is at 100bpm though it doesn’t matter if it’s at the default 120bpm. I’m pretty sure that’ll get anyone a solid recreation of the project.

TrackDelayCCTest.cpr (121.5 KB)

1 Like

Still occurring on the just-released update to 12.0.30 (lazy excuse to bump, forgive me).

Is anyone able to reproduce? Is it just me? Is this a bug or PEBCAK?

In case anyone happens to find this and are having the same issue, I’ll share a workaround: utilizing a VST negative-delay plugin that takes advantage of Plugin Delay Compensation (PDC) to apply arbitrary negative delays to any audio stream. By removing the negative delay from the midi/instrument track and adding such a plugin to the output audio track as an effect, you can get the desired effect as long as PDC is being respected.

There are two free options that I’ve found that seem to do the trick:

  1. MinusDelay by Bakuage which features plus-or-minus 400ms of delay but doesn’t make it easily to dial in specific, numeric amounts. If targeting any value other than exactly -400ms or +400ms, you may benefit from linking a DAW controller to it that allows numeric input (you’d have to do some math conversions though as I think naïve controllers will display values from 0 to 1, so 0 is likely -400ms and 1 = 400ms with 0.5 for “no effect”). I’m still quite new to Cubase, so there could be a more elegant means of handling this that I’m unaware of.
  2. Voxengo Latency Delay though it seems limited to 10k samples of negative delay or about 227ms at 44.1kHz (it’d be less at higher sample rates).

To reach deeper delays, plugins like these can be stacked. It won’t be all that tidy but it’ll work.

While pushing the midi back is an obvious “solution”, it’s imprecise, will drift from BPM changes (since event positioning is musically timed, not absolute), renders the musical grid useless (not always an issue), and allows the playback cursor’s position to not align with what you’re hearing (which is quite unsatisfying). The VST effect trick will do until I figure out what I’m doing wrong or this is recognized as an issue and is eventually resolved.

1 Like