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 控制器的主要内容,如果未能解决你的问题,请参考以下文章

Pygame 读取 MIDI 输入

Arduino MIDI 控制器库

用于 Arduino 的 Korg Nanokey MIDI 控制器?

如何使用 pyPortMidi 或 pygame 发送 midi 控制更改消息 (CC)?

如何强制 MIDI 设备报告控制状态?

关于MIDI文件