MIDI (Musical Instrument Digital Interface)는 전자 악기, 하드웨어, 컴퓨터가 통신하는 표준 방식입니다. Web MIDI API를 사용하면 웹사이트에서 사용자의 MIDI 키보드나 컨트롤러에 연결하여 가상 신시사이저, 드럼 머신 또는 기타 악기를 제어할 수 있습니다.
Web MIDI API를 사용하여 연결된 MIDI 기기에 자유롭게 액세스할 수 있는 보안 문제로 인해 W3C Audio Working Group에서는 웹 MIDI 사양의 모든 MIDI API 사용에 관한 명시적 권한 요구사항을 요청했습니다. 이전에는 Chrome의 고급 MIDI 사용 (SysEx 메시지)에만 적용되었던 이 변경사항이 이제 표준 MIDI 상호작용으로도 확장됩니다.
즉, 이제 전체 웹 MIDI API가 권한 메시지 뒤에 통제됩니다. 이 변경사항은 Chrome 124부터 점진적으로 적용될 예정입니다.
다음 코드는 사용자가 아직 액세스 권한을 부여하지 않았을 때 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님께 감사드립니다.