2016-07-29 7 views
0

출력 포트에서 MIDI 메시지를 보내면 입력 포트에서 이벤트가 시작됩니다. IAC 드라이버를 사용하고 출력이 IAC 드라이버 입력에 다시 연결되기 때문에 이것이 예상되는 동작입니까?MIDI 메시지를 보낼 때 이벤트가 실행되지 않도록 방지

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

나는 다른 곳에서 대답했으나 여기서도 설명하겠습니다.

IAC의 의미는 "응용 프로그램 간 통신"입니다. 드라이버는 출력 포트를 통해 MIDI 메시지를 보낼 수 있고 다른 하나는 입력 포트를 통해 수신 할 수 있으므로 응용 프로그램간에 통신하도록 설계되었습니다. 이것은 IAC 특정 기능 및 동작입니다. 다른 가상 또는 물리적 장치에 대해서는이를 기대할 수 없습니다.

Linux의 경우 ALSA는 유사한 통과 장치를 제공합니다. 또한 Windows 용 비슷한 드라이버를 찾을 수도 있습니다. 또는 전통적인 MIDI 출력/입력 포트를 물리적으로 DIN 케이블을 통해 서로 연결할 수도 있습니다.