Midi meta events and SysEx

Hello everyone!

The plugin I’m working on right now generates a drag and droppable Midi file, which contains the Midi data that the plugin outputs. I’m adding textMetaEvent, timeSignatureMetaEvent and tempoMetaEvent to this midi file.
I drag and drop this file onto the DAW, and let my plugin read this Midi region.

I want to be able to differentiate between this Midi region and any other regular Midi region that the user inputs, since each case is to be handled differently in the plugin.

Is there any special Midi message I can use for this purpose? Like meta events or SysEx messages? Something I can add to my drag and droppable midi file, so that it is read differently by my plugin?

Thank you in advance for the help!

Use a custom prefix in the textMetaEvent?

const auto s = String("shyamkrissh_special_region ") + String(key);
const auto message = MidiMessage::textMetaEvent(1, s); // etc.

Thank you for the suggestion!

Thing is, when iterating through the midiMessages buffer in the processBlock, I do not receive this meta event, and so the plugin is not able to tell whether the subsequent chunk of messages is coming from my special region or not.

Do you know of a way my processor can read such meta events coming from the DAW?

Thanks!

I’m currently working with NRPN messages which offer 14 bit midi parameter numbers and 14 bit values instead of the usual 7 bits.

A single NRPN message is a group of 4 normal midi messages on channel 98, 99, 6, and 38. Maybe you could use those to encode some special data?

1 Like

MIDI Meta events only exist in MIDI files not in live MIDI data stream.

Okay that makes a lot of sense. Is there any other type of message I can add to the Midi file that may be read during Midi data stream from the DAW?