From e5863a09dfeef942da8b9459d39badeba3d0620c Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sun, 7 Nov 2021 10:56:02 -0500 Subject: Set device id of fluidsynth to 16, as used by most GS synths. (This should really be a new option...) Also strip the marker bytes of sysex messages before sending to Fluidsynth. Someone didn't read the docs before coding. --- core/qmpmidioutfluid.cpp | 2 +- qmidiplayer-desktop/qmpmainwindow.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/qmpmidioutfluid.cpp b/core/qmpmidioutfluid.cpp index 56e71a0..65db825 100644 --- a/core/qmpmidioutfluid.cpp +++ b/core/qmpmidioutfluid.cpp @@ -151,7 +151,7 @@ void qmpMidiOutFluid::basicMessage(uint8_t type, uint8_t p1, uint8_t p2) void qmpMidiOutFluid::extendedMessage(uint32_t length, const char *data) { int rlen = 0; - fluid_synth_sysex(synth, data, int(length), nullptr, &rlen, nullptr, 0); + fluid_synth_sysex(synth, data + 1, int(length) - 2, nullptr, &rlen, nullptr, 0); } void qmpMidiOutFluid::rpnMessage(uint8_t ch, uint16_t type, uint16_t val) { diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp index 1198559..6132234 100644 --- a/qmidiplayer-desktop/qmpmainwindow.cpp +++ b/qmidiplayer-desktop/qmpmainwindow.cpp @@ -441,6 +441,7 @@ void qmpMainWindow::playerSetup(IFluidSettings *fs) }); } fs->setOptStr("synth.midi-bank-select", bsmode.c_str()); + fs->setOptInt("synth.device-id", 0x10); player->sendSysX(settings->getOptionBool("Midi/SendSysEx")); } void qmpMainWindow::loadSoundFont(IFluidSettings *fs) -- cgit v1.2.3