发送midi消息时防止事件被触发

时间:2016-07-29 09:23:03

标签: web-midi

当我在输出端口发送midi消息时,它会导致我的输入端口触发事件。这是预期的行为还是因为我使用IAC驱动程序并且输出连接回IAC驱动程序输入?

let output = midiAccess.outputs.get(portID)
output.send(action.data)

navigator.requestMIDIAccess({sysex: true})
  .then((midiAccess) => {
    midiAccess.inputs.forEach((entry) => {
      entry.onmidimessage = (event) => {
        dispatch(midiMessage(event))
      }
    })
  })

1 个答案:

答案 0 :(得分:1)

我在另一个地方回答,但我也在这里解释一下。

IAC的含义是"应用程序间通信"。 驱动程序设计用于在应用程序之间进行通信,因为可以通过输出端口发送MIDI消息,另一个可以通过输入端口接收它们。这是IAC特定的功能和行为。您不能指望其他虚拟或物理设备。

在Linux上,ALSA提供类似的传递设备。此外,您可能能够找到适用于Windows的类似驱动程序。或者您甚至可以通过DIN电缆将传统的MIDI输出/输入端口相互连接。