Sending Sysex Data to VST~ (or mcs.vst~)

adudek's icon

I can't find anything on this anywhere, so I'm asking the best and brightest (this forum) for help. Is it possible to send Sysex messages to the vst~ object. If so, is there a required prepended word like "midievent" is for channel messages? Also, if a sysex response is requested of the vst~ (assuming I can get sysex in) will the vst~ "respond" through the "Plugin-generated midi events" outlet, or some other way?

Roman Thilenius's icon

the only VST plug-ins in question are editors like ctrl which request such sysex data from a hardware unit.

i cant test now but i believe they do the same what most hardware also does, and receive sysex in omni mode. and those who dont, probably listen for it on channel 1.

so you should be fine using "midievent 144", then attach the sysex string.

adudek's icon

Thanks Roman for the quick response. Let me tell you what I'm trying to do. I am building a patch that allows users to build, edit, and transmit alternate tuning scales to external devices. I also want the patch to work with vst's that support the midi tuning standard sysex messages. I am using Ivory 2, because it supports MIDI real-time sysex single note tuning messages per the midi spec. It works fine when running Cantabile, which is a standalone app for hosting Ivory 2. But it does not work when loading Ivory 2 as a vst~ in Max.

I don't think that a note-on channel message like midievent 144 should make a difference, as the sysex messages come through the sysexin object, not the midiin object. I tried prepending the midievent 144 message to the sysex message in many ways to no avail. I cannot make this work either with the vst~ and the sysex generator in the same patch, or with the sysex generator and vst~ in different apps connected by internal midi ports. I think I should try it with some other vst host. Unfortunately, my go-to vst host (Ableton Live 9) does not support sysex. So I am limited in my testing. Perhaps I can try it in Vienna Ensemble Pro.

If anyone knows how to get a vst~ instrument to respond to sysex messages, please let me know. If it is not possible, it would be good to know that as well.

Thank you all. This is an amazing resource for so many of us!

Bill 2's icon

Just a guess: Have you tried just sending sys-ex messages as plain ol' lists?

Roman Thilenius's icon

ah, tuning tables, right. some NI also support this for like 10 years.

if i am not wrong, the "midievent" message has only been there to distinguish between parameter 144 or preset 144 and midi channel 1.

if vst~ actually supports VST3 it should support sysex. or like someone once put it: sysex ... is midi.

adudek's icon

Bill, I tried that first. No luck. Roman, I have only tried with VST2 - nothing. I will try tomorrow with VST3. Thanks!

Source Audio's icon

midi event 144 is status byte for note on message on channel 1.
Why would you expect it to route sysex messages to any destination ?
If it were possible to pass sysex to max vst~object/plugin,
it would work only if it accepted standard sysex messages,
starting with 240 and ending with 247 decimal.

Roman Thilenius's icon

my weird assumption was based on the fact that many hardware synths receive sysex in omni mode.

however, the max 7 vst reference recommends against it, it notes that only 2 arguments for the incoming list are allowed (and a third might be used for midi microtuning)

so any kind of "x90 xF0 ... " will not work there (even if it is allow in midi, which i dont know.

and otoh, if vst~ woud take sysex, it would probably also need use some keyword like "midievent", because "240 something" would change parameter 240 otherwise.

danieleghisi's icon

Hello,

I'm trying to do something very similar and I haven't been successful in sending sysex messages to vst~ (in my case [vst~ "MTS-ESP Mini"] ).

Did anyone find a solution? Is there a way to send them? (OK, sysex is midi, but how does vst~ understand them?)

Daniele