>> I'm working on some SexEx Send/Receive tools, and found out that SysEx >> data handled by Midi2 gets the first and last bytes stripped off. > > The OpenBeOS Midi2 kit works exactly like the BeOS R5 kit in that regard. > Which means we can't change that. > > However, you can override the Data() hook to look for a sysex yourself. The > data buffer that is passed to Data() does include the control bytes (at > least 0xF0, but not necessarily 0xF7). You would do something like this: > > void MyConsumer::Data(.....) > { > if (atomic && data[0] == B_SYS_EX_START) > { > // do your thing > } > else > { > // let superclass handle it > BMidiLocalConsumer::Data(.....); > } >} One thing I never quite understood is the 'atomic' flag. IIRC the MIDI message callbacks are only called for data with atomic == true, as you are doing here also. For large SysEx messages it would make sense to send them non-atomically, but this causes them to be ignored by most (probably all) applications... --ms