https://bugs.winehq.org/show_bug.cgi?id=57805
Bug ID: 57805 Summary: Wine CoreMIDI: Extra program change event on sending program change through MIDI Output from winmm Product: Wine Version: unspecified Hardware: aarch64 OS: MacOS Status: UNCONFIRMED Severity: normal Priority: P2 Component: winecoreaudio.drv Assignee: wine-bugs@winehq.org Reporter: david.silaban@gmail.com
Created attachment 78012 --> https://bugs.winehq.org/attachment.cgi?id=78012 Screen shot of the sample output
I tried to use Falcosoft SoundFont Player 6 (a MIDI player) using Wine on MacOS, I tried to play some MIDI files through it but it always seem to be stuck on program 00 (Acoustic Grand Piano) on all tracks.
I tried to capture the MIDI output data through Pocket MIDI (a free MacOS app something like MIDI-OX on Windows), it seems there is an error on sending 2 byte messages such as Program Change. Attached is the sample output from sending one program change from the UI.
Expected output the Program Change message should only be sent once, not twice.
https://bugs.winehq.org/show_bug.cgi?id=57805
Brendan Shanks bshanks@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bshanks@codeweavers.com
--- Comment #1 from Brendan Shanks bshanks@codeweavers.com --- I was able to test this by enabling the IAC driver in Audio MIDI Setup, then having Pocket MIDI in Wine send data to native Mac Pocket MIDI. The bug shows up with Program Change or Channel Aftertouch messages (both 2 bytes). The Windows MODM_DATA message always includes 3 bytes, and the docs say that "the driver must parse the event to determine how many bytes to transfer". We do not do that, and are just passing all 3 bytes to Core MIDI. Core MIDI must be doing some parsing, as 1 byte messages are sent without an issue. But for these 2 byte messages, we need to only send those 2 bytes to Core MIDI.
An MR with a fix is up at:
https://gitlab.winehq.org/wine/wine/-/merge_requests/7348
https://bugs.winehq.org/show_bug.cgi?id=57805
--- Comment #2 from Brendan Shanks bshanks@codeweavers.com --- This should be fixed by https://gitlab.winehq.org/wine/wine/-/commit/d95513b424ea0ebb192d424f773ba74...