On Tue, Jan 31, 2017 at 12:16 AM, Bruno Jesus 00cpxxx@gmail.com wrote:
MIDI spec at http://www.somascape.org/midi/tech/spec.html state that system real time messages "... are each single byte messages, with no following data bytes...", currently wine is prepending SYSEX header generating invalid messages.
A comparison before and after patch using gmidimonitor as ouput MIDI port: http://alexa.pro.br/~bruno/wine/midi.png
I believe the patch to be correct, I don't own any MIDI hardware to test but gmidimonitor seems good enough.
Do wineoss / winepulse need similar fixes?
On Tue, Jan 31, 2017 at 4:23 AM, Austin English austinenglish@gmail.com wrote:
On Tue, Jan 31, 2017 at 12:16 AM, Bruno Jesus 00cpxxx@gmail.com wrote:
MIDI spec at http://www.somascape.org/midi/tech/spec.html state that system real time messages "... are each single byte messages, with no following data bytes...", currently wine is prepending SYSEX header generating invalid messages.
A comparison before and after patch using gmidimonitor as ouput MIDI port: http://alexa.pro.br/~bruno/wine/midi.png
I believe the patch to be correct, I don't own any MIDI hardware to test but gmidimonitor seems good enough.
Do wineoss / winepulse need similar fixes?
wineoss code at [1] in a quick look at [2] suggests it may be wrong because MAYBE system real time messages are supposed to be _TIMER_EVENT like SEQ_START_TIMER or SEQ_STOP_TIMER... Hard to tell beucase these messages values don't match the MIDI spec.
winepulse seems to forward mid stuff to ALSA because the only time "mid" is found is in the spec file: winepulse.drv.spec:@ stdcall -private midMessage(long long long long long) winealsa.drv.midMessage
[1] http://source.winehq.org/source/dlls/wineoss.drv/midi.c#1435 [2] https://github.com/torvalds/linux/blob/master/include/uapi/linux/soundcard.h
Best wishes, Bruno