summaryrefslogtreecommitdiff
path: root/client/lib/midi.js
blob: 06cb26633e578a4e99321075574d745ceaa6ef13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
 * MIDI
 * @module midi.js;
 */

import { WebMidi } from "webmidi";

function enable(play) {
  WebMidi.enable()
    .then(onEnabled)
    .catch((error) => console.error(error));

  // Function triggered when WEBMIDI.js is ready
  function onEnabled() {
    // Display available MIDI input devices
    if (WebMidi.inputs.length < 1) {
      console.log("No device detected.");
      return;
    } else {
      WebMidi.inputs.forEach((device, index) => {
        document.body.innerHTML += `${index}: ${device.name} <br>`;
      });
      const mySynth = WebMidi.inputs[0];
      // const mySynth = WebMidi.getInputByName("TYPE NAME HERE!")

      mySynth.channels[1].addListener("noteon", (event) => {
        console.log(event.note);
      });
    }
  }
}

export default { enable };