SysEx Implementation – A Second Look
A generic MidiSysexOutput operator for modular runtime control.
While we now have a way to initialize the device during boot, I doubt many end users are going to want to change the code and rebuild the project.
Because I want to keep everything modular and extensible to other devices, a new generic SysEx operator can fill the gap.
MidiSysexOutput Operator
Functionality: When triggered, this sends a MIDI SysEx command to the specified device.
Explanation: Since TiXL has no generic byte type or byte list, we can use a string instead. We split the string on spaces, parse the individual hex values into bytes, and report any values outside the legitimate range (`00`–`FF`). MIDI SysEx also uses specific command markers: `F0` at the start and `F7` at the end. We verify both markers.

Conclusion
Community feedback and a little brainstorming revealed several possibilities for extending this operator:
- Decimal-based input: Since most operators can use integer values but not hex directly, it may be worth finding a conversion method. This may be best left to an external operator. The decimal value still needs to parse back to a byte (`0`–`255`).
- Customize the separator pattern: Spaces are currently used between HEX strings. Allowing a configurable separator could be more flexible, but it also adds complexity and more ways to break the parser.
For example, if an end user decides to use `0xAA, 0xBB, 0xCC` formatting but the separator is `, 0x`, it still fails with the initial `0x` at the beginning of the string. Some documentation also defines hex strings as `F0h 00h 01h 02h F7h`; a separator of `h ` fails because of the trailing `h`.
The number of edge cases may be endless.
