Commit Graph

16 Commits

Author SHA1 Message Date
negativeExponent
22d7fbd521
alsa_midi: Prevent some notes to linger when application is closed (#16815)
Appears to be enough to silence any lingering notes when midi is playing
and core is suddenly closed. Tried adding this on the core side but
midi_free comes first before retro_deinit/retro_unload_game so the
driver was already closed.

Another way to fix this in the core's side is to call 'flush'
immediately after any midi writes, but that doesn't appear to be the
api's design, flush is supposed to get called at the end of the
retro_run.

Im open for any better methods. but this should work for the issue
without causing other problems.

Co-authored-by: negativeExponent <negativeExponent@users.noreply.github.com>
2024-07-25 11:38:09 -07:00
negativeExponent
240e5eb9e5
winmm_midi: Fix midi_write_long_event unable to send sysex correctly (#16804)
data size has to be DWORD aligned.

Fix https://github.com/libretro/RetroArch/issues/16790

review before merge for confirmation/corrections:
@LibretroAdmin @zoltanvb and others
2024-07-22 19:08:29 -07:00
negativeExponent
bd69602686 winmm_midi.c: Ditto for MEVT_F_SHORT
similar to MEVT_F_LONG, this too is full DWORD, though its value remains 0
2024-07-18 08:24:20 -05:00
negativeExponent
2dae318636 midi: Fix unneeded left shift for MEVT_F_LONG
MEVT_F_LONG is a DWORD type with a value of 0x80000000, so there is no need to left-shit it.
2024-07-18 08:23:24 -05:00
twinaphex
bfeffb2423 Fix local header path includes 2021-12-04 16:11:02 +01:00
twinaphex
55410cf407 Use C-style comments 2021-02-03 10:04:42 +01:00
Bernhard Schelling
4fcace9aed
Recover from messages not handled by the device
When an underlying MIDI device does not understand/support a MIDI message (very common with sysex messages) it returns an error code.
With this fix MIDI output can continue gracefully even after an emulated game sends an unsupported message.
2021-01-13 02:07:21 +09:00
Bernhard Schelling
8a1ca893f0
Fix winmm midi driver hanging on content closing
midiStreamStop can freeze the process when there has been a NOTE-ON message without a corresponding NOTE-OFF.
Just removing the call to midiStreamStop and letting the midiStreamClose below it do the entire stopping and closing fixes that.
2021-01-03 03:22:31 +09:00
twinaphex
1fafdb2843 Style nits 2020-02-10 13:18:27 +01:00
twinaphex
617940fb8d Move midi_null driver to retroarch.c 2020-01-09 17:00:46 +01:00
Adrien Moulin
9cecf6623f Midi: correct pitch bend in ALSA driver
MIDI standard pitch bend center position is 0x2000 but ALSA's is 0
2019-08-14 21:47:54 +02:00
orbea
4c56167446 Convert to linux line endings. 2019-02-03 15:43:42 -08:00
Zoran Vuckovic
c1662ded34 Add ALSA MIDI driver 2018-10-04 21:48:11 +02:00
twinaphex
7bd705983e Convert strcmp to string_is_equal 2018-09-15 07:47:44 +02:00
twinaphex
ec5d046f4c Cleanups - get rid of strcmp references 2018-09-15 07:44:21 +02:00
Zoran Vuckovic
b487c3cace Add MIDI support 2018-06-16 21:17:32 +02:00