Output events

The docs and source code are almost 100% silent on this topic? Do you believe that this at all an important topic? (because I do…)

I need to know more about
Processor::process(ProcessData& data) {…
in particular, data.outputEvents

This is a null pointer in the VST3 source I am developing, when I step through it. I need to send note and note expression output events (pitch bend in particular). Is this at all possible? If not, please hurry up and get some actual developers looking at the issue.

I need to know whether I should simply create a member that inherits from IEventList, and then assign this to data.outputEvents. Or, should the SDK be set up in some unknown way to create and pass the outputEvents in? What about lifecycle management of this structure? Etc.

I can hardly believe that this is not dealt with anywhere.

Right - so I have worked out that I need to add:
addEventOutput(STR16(“Event Output”), 16);

to Processor::initialize.

The current problem is that Steinberg’s own test host seems to be supplying me with data.outputEvents as NULL, in Processor::process(ProcessData& data).

Reaper, on the other hand, seems to supply me with a non-null value (which is what I would expect) for the same plugin. Why?

Reaper thus allows me to send note events. However, I have been trying to send Note Expression events (the highly touted feature of VST3), in particular bend (tuning) values. This doesn’t seem to work with Halion Sonic SE and some free patches. I am not about to buy Cubase so I can test this (even if it works, it will work only for this exact combination, which is pretty much a non-starter for a product).

What I am trying to develop is a product that takes audio as input and produces note, bend and expression data (for processing by a downstream VST3 synth). Is this or is it not possible with VST3?