vst~ and SysEx and you.

subparuser's icon

Hey all.

I'm posting to call attention to what seems to me to be a limitation of the vst~ object in that it cannot accept sysex data.

I'm also posting to humbly request that this limitation be lifted. Perhaps doing so by default could cause compatibility or stability issues - so maybe a switch to enable at user risk and user control?

Too risky? Then a separate object, say . . . sxvst~ that the user would have to invoke specifically.

I'd be interested to know if there's much support for such capability. I have specific reasons for needing this, but surely I can't be alone?

Anyway, thanks for taking the time to read, hope some folk will help form a discussion around the topic.

amounra's icon

You're not alone. This would be useful.

NeedMoreCepstrum's icon

The limitation comes from the fact that SysEx messages are prepended with a status byte (240) and then appended with an end byte (247).

Midievents also are prepended with a number relevant to the midi channel they are attempting to address. (Example: channel 1 would be midi 147)

Cycling74 realized that if you're trying to send midi events into vst~, vst~ may confuse those midi events with 'requests to change parameters'. So they added a convenient distinguishing feature known as [midievent].

If vst~ sees [midievent] and then an arbitrary midi message, it will realize that you aren't actually trying to change parameter 147 (in the case of midi channel 1).

So in theory all they need to do is this exact same thing but for sysex.

It could technically work in the current versions of maxmsp, if there wasn't an argument limit for [midievent]. Like if you could just send sysex messages prepended with midievent it would theoretically work if there wasn't a limit to how many arguments you can have in a [midievent]?

I could be totally wrong about this though, but I don't think I am since sysex = midi. The limitation of [midievent] seems completely arbitrary.

Sorry to revive an old thread but this is still an issue and there are huge vsts (omnisphere) which have Sysex capabilities. It's not some alien outdated hard-to-maintain protocol. It should be as easy as just creating a [sysexevent] message for vst~.

(Bonus points if they could make a [sysexparse] like they did with [midiparse])

Rant over

Source Audio's icon

very wrong statement

midi sysex can only use 240 & 247 to signal start and end of sysex.

All values are < 128.

no conflicts here in that respect.

NeedMoreCepstrum's icon

Could you elaborate on what you mean by that?

Roman Thilenius's icon

what is more interesting is that in fact for the VST API sysex is not "just midi". of course it could be built like that (i.e. use the "midievent" message) in an plug-in hosting external, but allowing longer lists is not everything you had to do.

danieleghisi's icon

Did anyone have an answer from cycling about this? Or did anyone find a workaround?

I believe I'm in the very same situation and sysex messages to vst~ would be crucial for a project.

Best,

Daniele