[javascript] P5.js에서 MIDI 컨트롤러와의 통합을 어떻게 구현하나요?

P5.js는 웹 브라우저에서 실행되는 JavaScript 라이브러리로, 그래픽, 애니메이션, 오디오 등 다양한 창작물을 만들 수 있습니다. P5.js를 사용하여 MIDI 컨트롤러와의 통합을 구현하는 방법에 대해 알아보겠습니다.

MIDI 컨트롤러는 음악 기기나 소프트웨어와의 상호작용을 위한 입력 디바이스입니다. MIDI 컨트롤러는 사용자의 입력을 받아 P5.js 애플리케이션에서 사용할 수 있도록 설정해야 합니다. P5.js에서 MIDI 입력을 처리하기 위한 라이브러리로는 ‘WebMidi.js’가 있습니다.

먼저, P5.js 프로젝트에 ‘WebMidi.js’를 설치해야 합니다. npm을 사용하는 경우 다음과 같은 명령을 실행합니다:

$ npm install webmidi

HTML 파일에서 다음 스크립트 태그를 추가하여 ‘WebMidi.js’를 로드합니다:

<script src="https://unpkg.com/webmidi@latest"></script>

P5.js 스케치에서 MIDI 입력을 처리하기 위해 ‘WebMidi.js’를 설정해야 합니다. ‘setup’ 함수 내에 다음 코드를 추가합니다:

function setup() {
  // WebMidi 초기화
  WebMidi.enable(function(err) {
    if (err) {
      console.error('WebMidi could not be enabled.', err);
    } else {
      console.log('WebMidi enabled!');
      
      // 사용 가능한 MIDI 입력 장치 목록 가져오기
      var input = WebMidi.inputs[0];
      
      // MIDI 입력 이벤트 핸들러 설정
      input.addListener('noteon', 'all', function(e) {
        console.log('MIDI Note On:', e.note.name, e.note.number);
        
        // MIDI 입력을 사용하여 원하는 작업 수행
        // 예: 그림 그리기, 오디오 재생 등
      });
    }
  });
}

위 코드에서는 ‘WebMidi.enable’ 함수를 사용하여 MIDI 입력을 활성화합니다. 이 함수의 콜백 함수 내에서 사용 가능한 MIDI 입력 장치를 검색하고, ‘addListener’ 함수를 사용하여 MIDI 입력 이벤트 핸들러를 설정합니다. 이벤트 핸들러는 MIDI 입력을 받았을 때 호출되며, 입력된 MIDI 노트 정보를 활용하여 필요한 작업을 수행할 수 있습니다.

위 코드에서는 MIDI 입력을 받았을 때 콘솔에 MIDI 노트 정보를 로그하는 예시를 보여주었습니다. 필요에 따라 이벤트 핸들러를 사용하여 P5.js 애플리케이션에서 사용할 수 있는 다양한 기능을 구현할 수 있습니다.

P5.js와 MIDI 컨트롤러의 통합을 위한 기본적인 구현 방법을 살펴보았습니다. ‘WebMidi.js’의 자세한 사용법과 기능에 대해서는 공식 문서를 참조하시기 바랍니다.

참고 자료: