当我在输出端口发送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))
}
})
})
答案 0 :(得分:1)
我在另一个地方回答,但我也在这里解释一下。
IAC的含义是"应用程序间通信"。 驱动程序设计用于在应用程序之间进行通信,因为可以通过输出端口发送MIDI消息,另一个可以通过输入端口接收它们。这是IAC特定的功能和行为。您不能指望其他虚拟或物理设备。
在Linux上,ALSA提供类似的传递设备。此外,您可能能够找到适用于Windows的类似驱动程序。或者您甚至可以通过DIN电缆将传统的MIDI输出/输入端口相互连接。