From 17b5e86f44f3d71e8fe43c40f57c12a9649c7ad5 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Wed, 8 Nov 2017 23:11:01 +0300 Subject: Fixed zero four-operators bug when using a bigger non-GM bank --- src/adlmidi_xmi2mid.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/adlmidi_xmi2mid.c') diff --git a/src/adlmidi_xmi2mid.c b/src/adlmidi_xmi2mid.c index 083b5ed..4fae2a2 100644 --- a/src/adlmidi_xmi2mid.c +++ b/src/adlmidi_xmi2mid.c @@ -643,6 +643,11 @@ static int ConvertEvent(struct xmi_ctx *ctx, const int32_t time, data = read1(ctx); + //HACK! + if (((status >> 4) == 0xB) && (status & 0xF) != 9 && (data == 114)) { + data = 32; //Change XMI 114 controller into XG bank + } + /* Bank changes are handled here */ if ((status >> 4) == 0xB && data == 0) { data = read1(ctx); @@ -659,7 +664,7 @@ static int ConvertEvent(struct xmi_ctx *ctx, const int32_t time, CreateNewEvent(ctx, time); ctx->current->status = status; ctx->current->data[0] = 0; - ctx->current->data[1] = data; + ctx->current->data[1] = data == 127 ? 0 : data;//HACK: if (ctx->convert_type == XMIDI_CONVERT_GS127_TO_GS && data == 127) ctx->bank127[status & 0xF] = 1; -- cgit v1.2.3