이제 MIDI 기기에 액세스하려면 사용자 권한이 필요합니다.

François Beaufort
François Beaufort

MIDI (Musical Instrument Digital Interface)는 전자 악기, 하드웨어, 컴퓨터가 통신하는 표준 방식입니다. Web MIDI API를 사용하면 웹사이트에서 사용자의 MIDI 키보드나 컨트롤러에 연결하여 가상 신시사이저, 드럼 머신 또는 기타 악기를 제어할 수 있습니다.

브라우저 지원

  • 43
  • 79
  • 108
  • x

소스

Web MIDI API를 사용하여 연결된 MIDI 기기에 자유롭게 액세스할 수 있는 보안 문제로 인해 W3C Audio Working Group에서는 웹 MIDI 사양의 모든 MIDI API 사용에 관한 명시적 권한 요구사항을 요청했습니다. 이전에는 Chrome의 고급 MIDI 사용 (SysEx 메시지)에만 적용되었던 이 변경사항이 이제 표준 MIDI 상호작용으로도 확장됩니다.

즉, 이제 전체 웹 MIDI API가 권한 메시지 뒤에 통제됩니다. 이 변경사항은 Chrome 124부터 점진적으로 적용될 예정입니다.

Chrome의 웹 MIDI 권한 메시지 스크린샷
Chrome의 웹 MIDI 권한 메시지

다음 코드는 사용자가 아직 액세스 권한을 부여하지 않았을 때 navigator.requestMIDIAccess()를 호출하여 트리거되는 권한 메시지를 처리하는 방법을 보여줍니다.

try {
  // Prompt user to access MIDI devices.
  const access = await navigator.requestMIDIAccess();
  // Get lists of available MIDI controllers...

} catch (error) {
  if (error.name === "SecurityError") {
    // The website is not allowed to control and reprogram MIDI devices.
  }
}

웹사이트에 이 기능이 꼭 필요한 경우에만 navigator.requestMIDIAccess({ sysEx: true })에서 SysEx 메시지 지원을 요청하세요. Chrome 권한 메시지 문자열은 향후 변경될 수 있습니다.

테스트

이 변경사항은 Chrome 124에서 점진적으로 적용될 예정입니다. Chrome을 기기에서 로컬로 사용 설정하려면 --enable-features=BlockMidiByDefault 명령줄 스위치로 Chrome을 실행해야 할 수 있습니다.

https://permission.site 웹사이트에서 'MIDI' 및 'MIDI + SysEx' 버튼을 클릭하여 이 변경사항을 테스트합니다.

브라우저 지원

MIDI 기기에 액세스하려면 Chrome 및 Firefox 브라우저 모두에서 사용자 권한이 필요합니다.

의견

Chrome팀과 웹 표준 커뮤니티는 이번 변경과 관련된 여러분의 경험을 듣고자 합니다. 기존에 댓글을 달거나 새로운 GitHub 문제를 제출하여 의견을 제공합니다.

감사의 말

이 게시물을 검토해 주신 Michael Wilson님께 감사드립니다.