diff --git a/src/utils/midiHelper.js b/src/utils/midiHelper.js index c690bd6..cc05247 100644 --- a/src/utils/midiHelper.js +++ b/src/utils/midiHelper.js @@ -81,7 +81,7 @@ export const changeMidiInputPort = (portId) => { }); }; -export const changeKeyboardInputPort = (portId) => { +export const changeKeyboardInputPort = (portId, channel = 1) => { if (!navigator.requestMIDIAccess) return; navigator.requestMIDIAccess({ sysex: true }).then((midiAccess) => { @@ -97,6 +97,11 @@ export const changeKeyboardInputPort = (portId) => { if (selectedKeyboardInput) { selectedKeyboardInput.onmidimessage = (event) => { const data = Array.from(event.data); + const command = data[0] & 0xF0; + + if (command >= 0x80 && command <= 0xE0) { + data[0] = command | ((channel - 1) & 0x0F); + } if (selectedMidiOutput) { selectedMidiOutput.send(data);