Is this a correct way to use MidiMessage::createSysExMessage()?


#1
// example

unsigned char sysExData[] = {

	67, 16, 0, 135, 7 // 5 SysEx bytes
};

MidiMessage message = MidiMessage::createSysExMessage(sysExData, 5);

#2

I’d go with yes, the static create*() methods are meant to pad the necessary extra info/header bytes around the data bytes provided to make a valid message. Is there some behavior you aren’t expecting?

Also, keep in mind you can just look at the implementation .cpp file if the documentation falls short. Usually the code speaks well enough for itself. :slight_smile:


#3

I haven’t been able to successfully send a system exclusive message yet, I just wanted to make sure that I am using MidiMessage::createSysExMessage() properly, so I can focus directly on the sysex message itself.

Thanks.


#4

Are you testing this in a VST 3 plugin, by any chance? Sysex is supported in VST 2 but was “deprecated” by VST 3.


#5

I was not testing it in a VST 3 plugin.
Some of the MIDI information that’s in the hardware synthesizer’s manual is hard to decipher. The Sysex message I was sending was probably wrong.
I was unaware Sysex was deprecated by VST 3.

Thanks for the info.