Skip to content

Instantly share code, notes, and snippets.

@kaave
Last active March 28, 2019 10:47
Show Gist options
  • Save kaave/6a59ba89195f2f682ba02817707f48c4 to your computer and use it in GitHub Desktop.
Save kaave/6a59ba89195f2f682ba02817707f48c4 to your computer and use it in GitHub Desktop.
WebMidi: get inputs sample
yarn add -D @types/webmidi
export async function initializeWebMidi(onMidiMessage: (e: WebMidi.MIDIMessageEvent) => void) {
if (!navigator.requestMIDIAccess) {
return;
}
const midi = await navigator.requestMIDIAccess();
const inputIterator = midi.inputs.values();
const inputs: WebMidi.MIDIInput[] = [];
for (let o = inputIterator.next(); !o.done; o = inputIterator.next()) {
inputs.push(o.value);
}
inputs.forEach(input => {
console.log(`${input.state} [${input.name}]`);
input.onmidimessage = onMidiMessage;
});
}
initializeWebMidi(({ data: [command, ch, value] }) => {
if (command == 0xfe) return;
console.log(command.toString(16).toUpperCase(), ch, value.toString(16).toUpperCase());
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment