WebMidi.js 无法识别我的 midi 控制器
Posted
技术标签:
【中文标题】WebMidi.js 无法识别我的 midi 控制器【英文标题】:WebMidi.js does not recognize my midi controller 【发布时间】:2020-04-22 18:07:45 【问题描述】:我正在尝试使用 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 个用于输入和输出的空数组。
这是我在 Mac 中设置的 Midi Studio 的图片。我不确定我是否应该在这里做一些额外的配置来让我的 Roland A-PRO 显示为输入/输出。我看到它是灰色的,这让我认为它必须需要一些额外的配置。
但是,当我通过 Ableton 运行控制器时,它可以工作。
【问题讨论】:
【参考方案1】:原生 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
【讨论】:
以上是关于WebMidi.js 无法识别我的 midi 控制器的主要内容,如果未能解决你的问题,请参考以下文章
用于 Arduino 的 Korg Nanokey MIDI 控制器?