zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 9dc0e24aee3dc5af48444ab87f5b80774486555b
parent 7adfcfd61871a29bf939c6eedf2fb83a1bc6f14f
Author: Hans Petter Selasky <hps@selasky.org>
Date:   Sat, 28 Sep 2019 10:45:57 +0200

Add support for SysEx to ALSA sequencer backend.

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

Diffstat:
Msrc/Nio/AlsaEngine.cpp | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/Nio/AlsaEngine.cpp b/src/Nio/AlsaEngine.cpp @@ -193,6 +193,19 @@ void *AlsaEngine::MidiThread(void) break; case SND_SEQ_EVENT_SYSEX: // system exclusive + for (int x = 0; x < event->data.ext.len; x += 3) { + uint8_t buf[3]; + int y = event->data.ext.len - x; + if (y >= 3) { + memcpy(buf, (uint8_t *)event->data.ext.ptr + x, 3); + } else { + memset(buf, 0, sizeof(buf)); + memcpy(buf, (uint8_t *)event->data.ext.ptr + x, y); + } + midiProcess(buf[0], buf[1], buf[2]); + } + break; + case SND_SEQ_EVENT_SENSING: // midi device still there break;