From 1838e016dff5f71b68a08d5f8b88edbf45438d11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lumi=C3=A8re=20=C3=89lev=C3=A9?= <88174309+PoneyClairDeLune@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:36:48 +0000 Subject: [PATCH] Corrected the drum NRPN. lookup table. --- src/state/index.mjs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/state/index.mjs b/src/state/index.mjs index 468f391..adfa252 100644 --- a/src/state/index.mjs +++ b/src/state/index.mjs @@ -258,17 +258,24 @@ const overrides = { const ccOffTable = new Uint16Array(allocated.ch); const rpnOffTable = new Uint16Array(allocated.ch); const nrpnOffTable = new Uint16Array(allocated.ch); -const dNrpnOffTable = new Uint16Array(allocated.ch); const aceOffTable = new Uint16Array(allocated.ch); const extOffTable = new Uint16Array(allocated.ch); +const dNrpnOffTable = new Array(allocated.drm); for (let i = 0; i < allocated.ch; i ++) { ccOffTable[i] = i * allocated.cc; rpnOffTable[i] = i * allocated.rpn; nrpnOffTable[i] = i * allocated.nrpn; - dNrpnOffTable[i] = i * allocated.dpn; + //dNrpnOffTable[i] = i * allocated.dpn; aceOffTable[i] = i * allocated.ace; extOffTable[i] = i * allocated.ext; }; +for (let i0 = 0; i0 < allocated.drm; i0 ++) { + dNrpnOffTable[i0] = new Uint16Array(allocated.dpn); + let drumOff0 = i0 * allocated.dpn * allocated.dnc; + for (let i1 = 0; i1 < allocated.dpn; i1 ++) { + dNrpnOffTable[i0][i1] = drumOff0 + i1 * allocated.dnc; + }; +}; /* Extensions: