WebMidi. js не распознает мой миди-контроллер - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь использовать библиотеку WebMidi. js для чтения входных данных с моего контроллера midi.

Когда я пытаюсь зарегистрировать входы или выходы, он выглядит как пустой массив. Вот мой код:

WebMidi.enable(function (err) {
if (err) {
  console.log("WebMidi could not be enabled.", err);
} else {
  console.log("WebMidi enabled!");

  console.log(WebMidi.inputs);
  console.log(WebMidi.outputs);
}
});

Журнал, который я получаю, представляет собой 2 пустых массива для ввода и вывода.

А вот фотографии моей установки Midi Studio в Ma c. Я не уверен, должен ли я выполнить какую-то дополнительную настройку, чтобы мой Roland A-PRO отображался как вход / выход. Я вижу, что он выделен серым цветом, что заставляет меня думать, что ему нужна дополнительная настройка.

Однако контроллер работает, когда я запускаю его через Ableton.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 23 апреля 2020

пример для ванили JS

function midiOnStateChange(event) {
    console.log('midiOnStateChange', event);
}
function midiOnMIDImessage(event) {
    console.log('midiOnMIDImessage', event);
}
function requestMIDIAccessSuccess(midi) {
    var inputs = midi.inputs.values();
    for (var input = inputs.next(); input && !input.done; input = inputs.next()) {
        console.log('midi input', input);
        input.value.onmidimessage = midiOnMIDImessage;
    }
    midi.onstatechange = midiOnStateChange;
}
navigator.requestMIDIAccess().then(requestMIDIAccessSuccess);

пример запуска в браузере https://surikov.github.io/webaudiofont/examples/midikey.html

...