Difficulties with VCV Host pitch bend for microtonal pitches (works at least monophonically with Frozen Wasteland's Midichlorian)

I am trying to send pitch bend messages to VST instruments wrapped in the HOST module. It is possible to select pitch bend as one of the HOST mapping parameters, but the hosted VST instrument seemingly does not receive the pitch bend messages in a reliable way. I already tried multiple plugins including a plain MIDI monitor and Pianoteq (which includes in MIDI monitor). It appears that occasionally some pitch bend message is received by the plugin, but most of the pitch bend changes are just ignored.

Am I perhaps missing something, or is the HOST module actually supposed to support pitch bend? If not, why can that be selected as an option for a mapping?

Happy to share more details if my problem description is not explicit enough yet.

I just spend 30 bucks on this module, and I would love to get Rack Pro, but I depend on pitch bend to work.

Thanks a lot!

LATER EDIT: It turned out during the discussion that pitchbend for HOST works fine in monophonic mode, but in polyphonic mode many pitch bend messages are seemingly lost. Of course, the MIDI protocol is partly to blame for this limitation (e.g., polyphonic pitch bend messages are only possible either with multiple copies of an instrument or something like MPE, distributing the polyphonic notes across multiple MIDI channels).

seems to work here, Windows 11 + Rack 2.0.6 standalone.

Here, pitch bend CV (shown in green on the scope) from -5 to 5 V is sent to “Dexed” VST, and the output is pitchtracked - shown in red on the scope.

Are you getting the Pitch bend from a midi>CV module ?

That works here too - using loopmidi virtual midi cable from Ableton Live to VCV 2.0.6 Free

Suggest adding a picture of your patch.

For real official VCV support, go here: VCV - Support

1 Like

Thank you very much for your quick and helpful response, much appreciated! I can confirm that I can reproduce your patch demonstrating the HOST pitch bend support, so my difficulties are quite possibly caused by lack of understanding.

I happen to have a microtonal V/OCT signal (see below), and for controlling VST instruments in the HOST module I want to separate from this V/OCT signal its pitch bend component so to speak, because the VC input of HOST is automatically quantised to the nearest MIDI note number. I am still a complete VCV noob (though I used some sound synthesis programming languages before), and seemingly don’t understand sufficiently yet the pitch VC and pitch bend representation/processing.

What I am actually trying to do is getting microtonal playback (with dynamic retuning support) working for VST plugins with MTS-ESP, e.g., via the MTS-ESP MIDI to CV module of ODDSound. The microtonal playback of standard VCV oscillators pitch-controlled by this module via a single V/OCT signal works nicely out of the box.

What I (perhaps naively) thought I could do is the following:

  • Take the microtonal V/OCT signal (output by MTS-ESP MIDI to CV)
  • Quantise it to the standard chromatic scale
  • Subtract the quantised V/OCT signal from the microtonal V/OCT signal to get the pitch bend
  • Perhaps scale that pitch bend signal somewhat by a constant factor, depending on the VST
    instrument’s pitch bend range

Does that sound like a good idea in principle, or am I perhaps misunderstanding something? I have been tinkering for quite some time trying to get the above implemented (there are some ready-made modules available for each step), but so far without success.

Perhaps I am still misunderstanding what exactly a pitch bend signal of, say, 1, -1, 0.5, -0.5 and so on actually mean – and whether negative values are supposed to bend by exactly the same amount downwards as positive values bend upwards.

Again, thanks a lot for your help!

MIDI represents pitch bend as a 14-bit integer, allowing for 16,384 possible values. General MIDI implementations default to a range of ±2 semitones.

The VCV MIDI>CV module outputs the PW midi value as a virtual voltage from -5V to 5V.

VCV-host converts -5V to +5V on the PW input to a MIDI pitch bend message from -8191 to +8191 to the hosted VST. (or 0 to 16.383 - not sure, have to check the VST SDK documentation to be sure)

The dexed VST I used, has a pitch bend range of 24 semitones. -5V = -8191 “midi.p.b” = -12 semitones. And the other extreme +5V = +8191 in the midi message is + 12 semitones.

You have to be careful when converting for sure. I haven’t done much with this myself - perhaps someone has a better explanation.

Thanks a lot again for your quick response! This all makes sense.

Anyway, just to make sure: the pitch bend values are always linear, e.g., halve the virtual volt means always halve the bend amount and the same bending up and down is expressed by the same voltage, just with opposite signs?

I may be wrong about the midi values.

From the MIDI spec p19:

I don’t know that there are any rules as to how the midi PB messages are interpreted by the VST. Some VST’s may be exponential and asymmetric for all I know.

Thanks again. I think in the MIDI protocol pitch bend values are linear (though with higher resolution, as you shared), but I feel unsure about the VCV side and its representations with virtual volts. :confused:

Anyway, will experiment with this further tomorrow. :pray:

Some modules that might be of interrest

VCV Library - NYSTHI MicrotonalHostHelper

  • Set Pitch Bend in VST to +/- 1 or +/- 12 semitones

VCV Library - Frozen Wasteland Midichlorian

  • Set Pitch Bend in VST to +/- 1 half step

Frozen Wasteland: Midichlorian

Great, this module implements exactly what I need here, and it works indeed nicely as documented when used in monophonic mode. For example, I used it with MTS-ESP set to 22 tone equal temperament (to have a tuning that clearly deviates from 12 tone equal temperament), and got a plain VCO and, e.g., the Dexed VST in HOST (set to a pitch bend range of 1 semitones up and down, as required by Midichlorian) nicely in tune.

A MIDI monitor VST in HOST shows that indeed there is a pitch bend message sent to the plugin for every new tone.

However, when used in polyphonic mode, the HOST module still shows the problem I described initially: a MIDI monitor shows that the VST plugin then receives only very few pitch bend messages, most are somehow lost, and the sonic results are not in tune, even when playing monophonically in poly mode.

Of course, the limitations of the MIDI protocol (only one pitch bend for all notes of a MIDI channel) are partly to blame for this problem, and it might be that the implementors of HOST therefore did not even bother trying to get pitch bend working properly for polyphonic mode. A clean solution could be to add MPE support to HOST, then all MPE-supporting plugins could work nicely with polyphonic pitchbend etc., but seemingly that is not available yet (see also this discussion).

Summary: I can now monophonically play VST plugins in HOST with arbitrary microtonal pitches (e.g., from MTS-ESP) by separating the pitchbend component from a microtonal V/OCT signal with the module Midichlorian. Unfortunately, this does not work in polyphonic mode (even though for some reason the Midichlorian documentation claims to output “polyphonc Pitch Bend output for Host”).

Thanks a lot again!

1 Like
1 Like