问题标签 [web-midi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
330 浏览

javascript - Uncaught (in promise) TypeError: midi.inputs is not a function

我正在做一个项目,我试图让一个 midi 控制器影响 three.js 场景,但我不断收到错误消息:

Uncaught (in promise) TypeError: midi.inputs is not a function at getInputs (baton.js:110)。

0 投票
1 回答
171 浏览

driver - 从其他驱动程序获取输入流?图形输入板驱动程序,输出 Midi 以与 Web Midi API 一起使用

我在编写驱动程序方面的经验为 0。

在我承诺更多地了解这个主题之前,我需要询问我的想法是否可以实施(可行?),是否值得,或者是否有更好的方法。

有没有办法获取图形输入板驱动程序的输入流,使用来自另一个驱动程序(被操作系统视为 Midi 硬件设备)的标准记录图形输入板协议对其进行解码,将其转换为 midi 输出(最好不丢失数据)。

这样做的唯一原因是自稳定版本 49 以来,Chrome 已经支持 Web Midi API,而 Web USB API 仍处于规范起草阶段。请参阅我可以使用 - Midi

我想使用 Web Midi API 从我的平板电脑获取来自 Midi 驱动程序的输入,并将其转换回图形平板电脑输入流(坐标、压力深度等),显然是在具有接近经验的画布上绘制它本机应用程序可以访问图形输入板和功能以利用它。

0 投票
1 回答
382 浏览

javascript - 多个振荡器发出尖叫声,增益在 WebAudio 中没有影响

我正在用 WebMIDI 控制构建一个简单的合成器。增益节点对振荡器没有影响,它一直处于全音量状态。此外,当我弹奏和弦时,频率是正确的,但会有摇晃和刺耳的效果。使用我的 MIDI 控制器播放以及使用控制台启动和停止合成器时会出现问题。

这是我的合成器代码:

0 投票
1 回答
512 浏览

android - 是否可以在 Cordova Android 上的 WebMidi 中使用 SysEx 消息?

我正在尝试使用 Cordova 将 Web 应用程序移植到本机 Android 应用程序。这相当简单,主要只是将 Midi 消息发送到连接的设备。我知道 WebMidi API 仅在 Android 上最新版本的 Webkit 上受支持,并且我一直在 5.1 上进行测试。我已经设法通过在设备上的 Chrome 上运行原始网络版本来证明基础工作正常,它工作正常。

在 Cordova 中运行时的问题是消息本身由于某种原因没有发送,没有错误,只是没有到达那里。我知道 API 正在工作,因为应用程序的一个单独部分列出了连接的设备并提供了一个下拉列表供您选择,这工作正常,并且可以识别连接的 Midi 设备。但是,当我发送消息时,它们对 Midi 设备没有预期的效果。它们是 SysEx 消息,我认为需要额外的权限,android.webkit.resource.MIDI_SYSEX,是否有可能在 Chrome 上启用但在 Cordova 应用程序上未启用?我尝试将此权限添加到 ./config.xml 和 ./platform/android/AndroidManifest.xml 但无济于事,它似乎没有任何效果,甚至没有显示为附加权限安装时。

根据各种搜索,我还尝试安装 Crosswalk 插件,但根本无法让它工作,甚至连设备列表都没有。

欢迎任何想法。

0 投票
1 回答
358 浏览

javascript - Webmidi js不在浏览器上播放声音

嘿,我正在使用 webmidi js 库在浏览器上单击播放 midi 音乐。 https://www.npmjs.com/package/webmidi

我正在使用图书馆中的一个非常基本的示例。即使看起来连接有效,我也不能在这里做任何事情。

我在 chrome 和 ubuntu 14.04 上运行它。

console.log(output) 返回:

0 投票
2 回答
2379 浏览

javascript - 如何将 Web Midi API 连接到本机应用程序(如 Ableton live)

[如果有更好的地方问这个问题,请告诉我!]

注意:我在 Mac 上。

我已经使用 Web MIDI API 成功地将 MIDI 键盘与我的浏览器 (Chrome) 连接起来。

我想知道我是否也可以连接应用程序(如 Ableton Live),以便当 Ableton 输出 MIDI 消息时,浏览器可以接收这些消息?

我看到的选项:

  1. 将 Midi 从 Ableton 发送到我的 MIDI 键盘,然后将它们转发到 Web MIDI API(任何人都可以阐明如何设置它吗?)
  2. 使用 Mac OS 中的 IAC(应用程序间通信)驱动程序,“可以这么说,您可以在盒子内的应用程序之间创建虚拟 MIDI 电缆”。我不知道如何设置它,因为“web midi api”没有出现在 Midi Studio 中。

我更喜欢选项 2,这样在没有物理 MIDI 设备的情况下也可以使用,但我也很乐意了解选项 1 是否可以使用!

感谢您对此的任何意见!

0 投票
1 回答
1418 浏览

javascript - Web Audio API - 停止振荡器连接到释放包络的正确方法

我正在使用WebAudioAPIand创建复音合成器WebMIDIAPI。我的两个振荡器中的每一个都有一个增益节点,然后将其连接到主增益节点。

我想知道如何在发布后正确停止(并在必要时删除?)振荡器。我不确定是否有必要从阵列中调用oscillator.stop()和振荡器。delete

如果我这样做,释放信封不起作用并且音符立即停止,如果我不这样做,释放信封确实有效,但音符有时可以继续播放。

编辑:似乎当该.stop()功能未实现并且两个音符同时播放时,其中一个振荡器将始终保持打开状态。不知道是我的代码还是??

我的noteOff功能代码如下:

任何帮助将不胜感激,谢谢!

0 投票
1 回答
222 浏览

javascript - 是否可以通过 Chrome 以编程方式创建虚拟 MIDI 设备?

我想找到或创建一个从 Chrome 创建虚拟 MIDI 设备的函数。

这样我就可以在我最喜欢的 DAW 或其他地方找到这个虚拟 MIDI 设备/端口。

是否有可能在javascript中或者我需要为此开发一个插件?

0 投票
0 回答
195 浏览

javascript - Web MIDI/音频:为什么 onmidimessage 没有触发?

我将以下代码与 cotejp 的webmidi库一起使用来检测 midi 输入事件:

由于某种原因,这已停止工作。我不知道为什么,所以我尝试创建一个不使用库的实现:

https://jsfiddle.net/kbmhwnrh/

检测到所有 midi 输入并成功打开,但 onmidimessage 什么也不做。我已经在多台计算机上使用多个 MIDI 设备进行了尝试,并得到了相同的结果。我错过了什么?

0 投票
1 回答
1348 浏览

javascript - 使用 JavaScript 在浏览器中检测 Midi-piano 键盘事件的库

我想将 MIDI 钢琴键盘插入计算机的 USB 端口,并通过在浏览器中显示某些内容来响应按键事件。

有谁知道允许 JavaScript 与前端/浏览器中的 USB MIDI 键盘事件交互的库?

类似于:
链接到 index.html 的 script.js 文件:

谢谢!