Sorry, I missed your comment previously!
MidiMessage isn’t going to see any changes, it’s always going to represent a MIDI 1.0 bytestream message. If you want to send/receive bytestream messages through ump::Input or ump::Output, you’re responsible for converting between UMP and bytestream representations on either side. JUCE includes some mechanisms to assist: there’s GenericUMPConverter for conversion from bytestream to UMP-formatted MIDI 1.0 or MIDI 2.0; to go in the other direction, you can use ToBytestreamConverter. The new implementations of MidiInput and MidiOutput do this conversion internally, so you can look at those implementations for pointers if necessary.
We do intend to add some improved setters and getters for properties of MIDI 2.0 messages in UMP format, but those aren’t present in the initial release.
We don’t have a ‘flex data message’ type. But, there’s nothing stopping you from reading/writing flex data messages to a ump::Input or ump::Output. You may need to write your own helpers to pack/unpack plain data into UMP flex-data format. We already supply similar facilities for packing/unpacking 7-bit sysex data, so those might serve as a starting point.
That’s odd, thanks for letting us know!
