You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让node-easymidi与FL Studio同时读取MIDI键盘输入?

解决Windows下Node.js(node-easymidi)与FL Studio同时读取MIDI键盘的问题

这个坑我之前踩过,本质是Windows系统下WinMM MIDI API的独占访问限制——FL Studio运行时会以独占模式占用你的CASIO MIDI设备,导致node-midi(node-easymidi的底层依赖)无法再打开它,就会抛出你看到的MidiInWinMM::initialize: no MIDI input devices currently available错误。下面给你几个可行的解决办法:

方法1:换用支持共享访问的MIDI库

node-midi的官方版本不支持MIDI设备的共享打开,但有一个维护活跃的fork @julusian/midi 支持这个功能,还有适配它的@julusian/easymidi,完全兼容你原来的代码逻辑:

步骤:

  1. 卸载旧依赖,安装新库:
npm uninstall node-midi easymidi
npm install @julusian/midi @julusian/easymidi
  1. 修改代码启用共享模式:
const easymidi = require('@julusian/easymidi');
const inputs = easymidi.getInputs();
const outputs = easymidi.getOutputs();
console.log(inputs, outputs); // 依然能识别你的CASIO设备

// 创建输入时添加shared参数启用共享
const input = new easymidi.Input('CASIO USB-MIDI 0', { shared: true });

input.on('noteon', (msg) => console.log('Note On:', msg));
input.on('noteoff', (msg) => console.log('Note Off:', msg));

这样设置后,FL Studio和Node应用就能同时读取同一个MIDI设备的输入了。

方法2:用虚拟MIDI路由工具转发信号

如果不想换库,可以用虚拟MIDI工具把物理设备的信号复制到多个虚拟端口,让FL和Node各自连接一个虚拟端口:

步骤:

  1. 下载安装LoopMIDI(免费轻量)或者MIDI Ox(功能更全),以LoopMIDI为例:

    • 打开软件后点击+,创建两个虚拟MIDI端口,比如命名为MIDI Shared 1和MIDI Shared 2
  2. 设置信号转发:

    • 在LoopMIDI的路由界面,把你的CASIO USB-MIDI输入分别映射到两个虚拟输出端口
  3. 修改Node代码连接虚拟端口:

var easymidi = require('easymidi');
var inputs = easymidi.getInputs();
console.log(inputs); // 现在能看到你创建的虚拟端口
var input = new easymidi.Input('MIDI Shared 1'); // 连接其中一个虚拟端口
input.on('noteon', function (msg) { console.log(msg); });
input.on('noteoff', function (msg) { console.log(msg); });

然后在FL Studio的MIDI设置里选择另一个虚拟端口作为输入,两个程序就能同时收到MIDI信号了。

方法3:调整FL Studio的MIDI独占设置

部分DAW支持关闭MIDI设备的独占模式,你可以试试:

  • 打开FL Studio的Options > MIDI Settings
  • 在你的CASIO设备对应的输入选项里,查找Exclusive Mode(独占模式)开关,将其关闭
  • 保存设置后重启FL Studio,再启动Node应用测试

不过这个方法不一定对所有设备生效,有些硬件驱动本身会强制独占,所以前两个方法更可靠。

内容的提问来源于stack exchange,提问作者ー PupSoZeyDe ー

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:02:39