问题标签 [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 投票
1 回答
216 浏览

javascript - 延长 MIDI.js 钢琴音符持续时间

我正在使用 MIDI.js 构建一个音乐应用程序,允许用户通过键盘弹奏钢琴。一切正常,但我遇到的问题是音符(用 MIDI.noteOn 调用)只持续 3 秒,然后就被切断了。我正在尝试找到一种方法: 1- 让笔记持续更长时间。2- 使音符消失,而不是仅仅切断。

有人可以在那里指出我正确的方向吗?关于 MIDI.js 的文档和讨论很少。

提前致谢!

编辑:乐器名称是acoustic_grand_piano

0 投票
1 回答
688 浏览

javascript - 将用户链接到 chrome 标志页面

我创建了一个使用新的 Web Midi Api 的站点,它是 Chrome Canary 中的原生。由于默认情况下未启用 web midi,我想简单地将我的用户引导到 chrome://flags/#enable-web-midi,他们可以在其中启用 midi。

我发现不允许使用锚标记,window.open("chrome://flags") 也不允许。我想知道是否有 Chrome 专家可以引导我朝着正确的方向前进。
我想让这个启用步骤对我的用户来说尽可能简单。

0 投票
1 回答
117 浏览

javascript - 在 MidiOutput 代理上调用“发送”时出现类型错误

显然,dart 中的方法 navigator.requestMIDIAc​​cess() 存在问题。https://code.google.com/p/dart/issues/detail?id=21805

所以我尝试了使用 javascript 代理的解决方法。在控制台上列出 MIDI 端口是没有问题的。但是,当我尝试发送 MIDI 音符时,会出现错误:“类型错误”

我不知道如何传递“note-on”参数?output.callMethod('send', [[144 , 60, 127]]); output[0] 给了我“Microsoft GS Wavetable Synth”

0 投票
1 回答
640 浏览

web-midi - 可以使用 web midi api 制作虚拟 midi 设备吗?

Web MIDI API 当前允许开发人员访问 MIDI 设备并向它们发送事件。这意味着我们可以创建一个网页,将 MIDI 消息发送到我们选择的 MIDI 设备和从我们选择的 MIDI 设备发送出去。

我正在寻找创建三种类型的页面:

  • 虚拟 MIDI 键盘
  • 虚拟 MIDI 合成器
  • 虚拟 MIDI 电缆/插头

我希望这样做,以便用户可以通过标准的通信形式(MIDI 和 web MIDI API)打开并使用不同的合成器演奏不同的键盘。他们甚至可以更改他们想要使用的连接管理。如果网络 MIDI API 支持它,他们可以混合使用虚拟网络 MIDI 设备、虚拟桌面 MIDI 设备和真实 MIDI 设备。

但是,我找不到创建自己的虚拟设备的方法。有没有办法制造这样的设备?

0 投票
1 回答
658 浏览

javascript - 使用 HTML5 网络 MIDI API

我正在尝试使用网络音频 API 制作一个简单的合成器网络应用程序,我想通过网络 MIDI API 将它与我的 MIDI 键盘一起使用,所以我在 Chrome 和 Chrome Canary 上都尝试了这些说明,但我总是得到“ navigator.getMIDIAc​​cess 不是函数”错误,Chrome 的版本为 40,Chrome Canary 的版本为 42,在 Mac OS X (10.10.2) 和实验标志已启用。现在的代码非常简单(这是一个测试):

错误在哪里?如果可能有帮助,我正在 USB 上使用 M-AUDIO Keystation88 键盘。Chrome 是唯一支持此功能的吗?

0 投票
3 回答
2275 浏览

javascript - MIDI Javascript:如何在没有库的情况下在 javascript 中生成单个 MIDI 音符?

我一直在阅读有关 Web Midi API 的文档,并尝试查看有关该主题的不同网站。有没有办法在不使用花哨的库和东西的情况下播放 MIDI 声音?假设我只想生成一个注释:如何访问本地计算机上的 midi 模块?任何人都可以编写一小段代码来播放单个音符并且我可以简单地嵌入到元素中吗?

0 投票
1 回答
1121 浏览

javascript - 为什么这个 Web MIDI API 代码没有检测到 MIDI 事件?

我正在编写一个 Chrome 应用程序,使用当前稳定的 Chrome 版本(42.0.2311.152)。我在 Linux 和 Chromebook 上都有这个问题。

我有一个正在识别的 USB MIDI 键盘,但没有检测到 MIDI 事件。我检查了其他程序,并确定我的设备正在发送 MIDI 事件。

这是我的代码:

我得到的控制台输出是:

也就是说,设备被识别,并且似乎设置了 onmidimesage 处理程序。

然而,当我按下 MIDI 键盘上的键时,没有检测到任何事件。

我究竟做错了什么?

0 投票
0 回答
1568 浏览

javascript - Electron - 通过 Web MIDI API 发送 Sysex 消息会导致渲染器崩溃

我正在开发一个可以将 sysex(系统专有)MIDI 消息发送到 MIDI 设备的 Electron 应用程序,每次我尝试发送 sysex 消息时,渲染器都会崩溃。我可以毫无问题地向设备发送非 sysex 消息(noteOn、noteOff 等)。

这是我正在做的一些事情:

在网络浏览器(仅限 Chrome)中,您需要安全连接并请求用户许可才能发送 sysex 消息。我想知道这两个 Web MIDI sysex 要求是否导致了这次崩溃,因为我不清楚如何在 Electron 应用程序的上下文中满足这些条件。

0 投票
1 回答
219 浏览

midi - 为什么此 soundfont MIDI 播放器复制不发出声音?

我正在尝试使用逐字 javascript 和 html复制这个基于 soundfont 的 midi 文件播放器的功能。

尽管没有错误(除了 favicon 404 错误),播放 MIDI 文件时也不会发出声音。但是,事件会在事件监视器中显示,就好像它们正在播放一样,并且当单击 GM 播放器的钢琴键时会播放声音音符。

运行链接的演示时我没有问题。

这个项目在能够播放直接上传的 .sf2 文件的 MIDI 文件方面似乎是前所未有的。如果您熟悉 MIDI.js,您可能对此特别感兴趣。

请指出可能导致此问题的原因,或者如果对此项目感兴趣,任何发布的发现都会有所帮助(即使您没有遇到任何问题)。

0 投票
3 回答
1090 浏览

javascript - Web Midi - 列出设备名称

我创建了一个简单的脚本来列出连接的 MIDI 输入设备。这在 Windows 上的 Chrome 中运行良好,但在 Mac 上的 Chrome 上失败,并出现“无法读取未定义的属性名称”。如果我复制并粘贴 w3c.org 示例中的代码,也会发生这种情况:http: //www.w3.org/TR/webmidi/#listing-inputs-and-outputs

这是我的代码:

console.log(midiAccess) 工作正常。知道这里发生了什么吗?