问题标签 [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 回答
262 浏览

javascript - 强制 Android 平板电脑进入 MIDI USB 模式

我正在使用 Android (Huewei) 平板电脑在带有 webmidi 扩展的 Chrome 浏览器上使用 HTML/Javascript 通过 USB 控制数字音乐合成器。这工作正常,但我必须打开设置面板并将 USB 端口设置为 MIDI,然后才能每次使用它,这很慢而且很痛苦。有没有办法以编程方式强制 USB 端口进入 MIDI 模式,或者至少向用户提供一个窗口以同意设置此模式?

我启用了开发人员选项,所以不是那样。

0 投票
1 回答
247 浏览

angular - 未定义 MIDI

在升级to和其他一些依赖项的8.1.3版本后,我收到以下错误:angular~9.0.6

有错误的依赖的源代码:

我尝试降级: abcjs^5.12.0背到背到^5.6.11 @types/webmidi从背到从背到但 它没有改变任何东西。^2.0.4^2.0.3 web-midi-api^2.0.7^2.0.5 typescript^3.7.5^3.4.5

更新:abcjs从文件中删除依赖项时package.json,错误消失了,项目应用程序运行良好。

这是来自现在工作的应用程序的升级依赖项列表。注意abcjs依赖是如何消失的。

0 投票
1 回答
259 浏览

javascript - 无法从虚拟 MIDI 键盘获取事件

我一直在尝试了解如何在 chrome 上使用 Web MIDI API。我正在尝试关注 MDN 文档上的信息,并且能够获取有关我在 macOS 上安装的虚拟 MIDI 钢琴键盘的信息。

使用以下代码,我可以验证我是否能够获取有关 MIDI 设备的信息

但是我没有得到提示,允许网站访问我的 MIDI 设备,正如我所期望的那样。

然后我尝试使用在 MDN 文档上找到的代码片段来获取onmidimessage.

https://developer.mozilla.org/en-US/docs/Web/API/MIDIMessageEvent

我没有收到任何错误,我可以console.log(input[1])看到结果。但是当我按下虚拟 MIDI 钢琴键盘上的键时,没有任何活动,我没有看到任何记录到控制台。

所以我很困惑,找不到任何关于如何让它工作的信息。有人对如何从 MIDI 设备获取事件有任何想法吗?

0 投票
1 回答
92 浏览

javascript - Javascript:在异步通信中继续循环之前等待来自 MIDI 设备的响应

我正在使用带有 Web MIDI API 的 MIDI 协议与 MIDI 设备进行通信。每次等待响应或超时以发送下一条消息时,我都想向此设备发送 MIDI 消息。通过接收响应。

我想要以下内容:

这是我的第一次尝试:

它显然不起作用,因为await gotMIDImessage();调用了该函数gotMIDImessage(),但该函数在收到消息时会自动触发。

我怎样才能做到这一点?

编辑:我也试过这个似乎不起作用的版本

res始终为空,我在循环完成后收到所有 15 条消息

0 投票
1 回答
173 浏览

javascript - WebMidi.js 无法识别我的 midi 控制器

我正在尝试使用 WebMidi.js 库从我的 midi 控制器读取输入。

当我尝试记录输入或输出时,它会显示为一个空数组。这是我的代码:

我得到的日志是 2 个用于输入和输出的空数组。

这是我在 Mac 中设置的 Midi Studio 的图片。我不确定我是否应该在这里做一些额外的配置来让我的 Roland A-PRO 显示为输入/输出。我看到它是灰色的,这让我认为它必须需要一些额外的配置。

但是,当我通过 Ableton 运行控制器时,它可以工作。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
134 浏览

google-chrome - Chrome 上的 Web MIDI 可与本地服务器一起使用,但在云中服务时不可用

我建立了一个使用 Chrome web midi 界面(基于 navigator.requestMidiAccess)的网站,该界面在本地开发服务器中运行良好,但是当推送到云服务器时失败,说 navigator.requestMidiAccess 不是一个函数。相同的代码,相同的浏览器。我将尝试包含相关代码:

0 投票
1 回答
480 浏览

javascript - 如何将 Web MIDI API 与 React 前端和 Django 后端集成

我对 Django 和 React 还很陌生,但对 Python 和 JavaScript 有很好的掌握。

我想要做的是使用 Web MIDI API 来监控一些 MIDI 数据,从中推断出一些信息并将其存储在数据库中。它基本上是一个 DAW,软件合成器监控系统,信息可以作为 MIDI 传输到浏览器(通过 IAC),然后将各种信息存储在数据库中。这需要按用户完成,用户数据分离。我猜我需要实现一个 CRUD API。我目前有一个 Python 项目来执行此操作,并将数据保存在内存中,格式为 JSON - 计划是将其转换为 Web 应用程序。

我已经观看并关注了一堆关于集成 Django 和 React 的教程,并且还找到了这个用于基本登录系统的样板。

https://github.com/justdjango/django-react-boilerplate

如果可能的话,我想使用它并添加我需要的功能,任何人都可以指出我从哪里开始以及我将在哪里添加 MIDI 内容的附加代码到这个样板的正确方向。

这个项目还有另一个阶段,但我的目标是首先完成这一步,希望我能从那里获得更好的理解。

我看过这个问题:

django:将每个用户的数据分开

0 投票
1 回答
213 浏览

javascript - 查看 p5.js 钢琴乐器的代码

我正在 p5.js 上构建一个键盘乐器,需要一些帮助来查看我的代码。首先,我正在尝试为我的乐器制作一个延音踏板,并且能够打开和关闭它,但它不会一直关闭。

其次,我想将 midi 功能导入我的乐器。我觉得我的 midi 输入创建代码已经关闭,考虑到现在我的程序正在运行,但画布上没有显示任何内容。

这是该页面的链接- https://editor.p5js.org/dragonballskymaster/sketches/mvb1oV2gF

我绝对还是个初学者,所以请耐心等待我!!:) 如果您愿意提供帮助,请告诉我您是否需要进一步说明。请暂时忽略波形和音量按钮。我将 webMIDI 导入到 index.html 中——</p>

这里是主要代码——</p>

抱歉,代码有点乱。任何帮助都是受欢迎的!

0 投票
1 回答
726 浏览

node.js - 如何在 Flutter Web 应用中使用 NodeJS 包

我有一个需要能够创建虚拟 MIDI 设备的 Flutter Web 应用程序。为此,唯一的选择似乎是使用easymidi NodeJS 包。将 NodeJS 脚本连接到颤振应用程序的最佳方式是什么?

0 投票
0 回答
20 浏览

typescript - Web midi api Js代码工作但不在Ts中

我一直在使用 web midi API 从我插入计算机的外部硬件中成功读取 MIDI 消息。以下代码在我将其放入浏览器控制台时有效,但仅在控制台中。

当我在打字稿中编写相同的代码时(它编译时没有错误),它什么也不做。有谁知道为什么会这样?我在同一个文件中编写的所有其他 T 都可以编译并且工作正常,除了这个。我正在使用 Webpack 和 Webpack 开发服务器来捆绑我的 Ts。我的问题会与此有关吗?我没有太多使用 Ts 或 Webpack 的经验。

这是有效的代码:

我用过的Ts代码和这个基本一样,只是声明了devices和的类型message: any。我知道这可能不是编写 Ts 的最佳方式,但我不确定如何取消这些类型。为了帮助,我安装了@types/webmidi