Generating MIDI Output (repeating a loop)


I’m trying to create an effect which reads MIDI loops (played in for now, or eventually loaded externally), and plays them back with the notes snapped to a new chord, with the chord determined by input MIDI. It’d be a kind of auto-accompaniment thing.

Storing and outputting notes works fine, and I can see how to read MIDI CC as parameters using IMidiMapping, but I’d like to know what the correct method is for sending those parameters back out again, so that the host can route them to the synth/whatever in the same way as MIDI CC would be.

In the case where the MIDI loop is played in by the user, they could be using arbitrary MIDI CCs, according to their particular setup (mod wheel, sustain pedals, knobs, etc.). I don’t think it should require any configuration to say which ones to output - I just need to echo back whatever I originally received.

What’s the appropriate solution for this? I’ve seen proposed “catch-all” setups including 128 or 2048 sliders which are default-mapped to MIDI inputs. But is there a way to map those back to MIDI outputs? Would this require the user to explicitly do something to the output parameters?


P.S. There were a lot of frustrated messages when I went searching for this, so I realise this is a contentious area. I’ve only used VST3 (never tried VST2) - I like it, and IMidiMapping seems pretty sensible, so I’d like to understand the correct VST3-ish approach for output.


since VST SDK Version 3.6.12 (2018/12/03), the plugin have the possibility to generate MIDI CC as output event. This is supported by Cubase/Nuendo DAW.

OK - so it’s new, and doesn’t sound like it’s widely supported yet. I’ll just delay implementing this plugin for now, and see how things progress.