同时用于多个应用程序的 node-midi 多个输入?

问题描述

我正在研究 node-midi,这是 RtMidi C++ 库的 node.js 包装器,提供实时 MIDI I/O,及其简化的包装器 node-easymidi

库运行良好,但有一件事,我不仅想从 easymidi 读取 MIDI 钢琴键盘输入,还想从其他应用程序 FL studio 读取 MIDI 钢琴键盘输入,以播放 MIDI 输入声音。如果我在 FL studio 时尝试连接到 easymidi,我会收到错误 MidiInWinMM::initialize: no MIDI input devices currently available.。所以我需要在运行 node 应用程序之前退出 FL studio

那么,除了节点应用程序之外,我如何修改代码以与多个应用程序一起使用?或者我需要安装其他库或更改 Windows 设置?我阅读了 google、stackoverflow、github 问题,但我自己找不到解决方案。所以我需要你的帮助。谢谢。

这是代码

var easymidi = require('easymidi');

var inputs = easymidi.getInputs();
var outputs = easymidi.getoutputs();
console.log(inputs,outputs ) ;
// [ 'CASIO USB-MIDI 0' ] [ 'Microsoft GS Wavetable Synth 0','CASIO USB-MIDI 1' ]

var input = new easymidi.Input('CASIO USB-MIDI 0');

input.on('noteon',function (msg) {
  console.log(msg ) ;
});
input.on('noteoff',function (msg) {
  console.log(msg ) ;
});

解决方法

遗憾的是,无法在 Windows 中共享 MIDI 乐器。 如果该端口被一个应用程序使用,则另一个应用程序无法连接到它。