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

iphone - 如何在 iPhone 上播放 MIDI?

据我所知,没有可用于在 iPhone 上播放 MIDI 的本地或第三方库。但似乎有不少应用程序可以做到这一点。他们在用什么?有什么线索吗?

0 投票
2 回答
5006 浏览

c++ - C++ MIDI文件读取库

我正在尝试编写一些软件来将 MIDI 文件读入内部数据格式并使用它来控制 3D 模拟乐器。我最大的问题是从文件中读取 MIDI 数据,我想避免编写所有导入代码。

有谁知道一个免费的(最好是开源的)跨平台的 MIDI 文件阅读库?它有什么特点?它可以导入其他基于音符的音乐格式吗?

0 投票
2 回答
1410 浏览

java - 向 Java Sound 的 SysexMessage 发送大于 127 的字节时出现问题

我正在使用 JavaSound API 将 MIDI System Exclusive (Sysex) 消息发送到外部 MIDI 设备(电子键盘)。根据雅马哈手册,点亮其中一个键的数据是这一系列字节:F0 43 7F 00 00 03 00 41 F7。

根据 SysexMessage 上的 JavaDoc,为消息发送数据的正确方法是使用setMessage(int status, byte[] data, int length). 在这种情况下,F0(或十进制的 240)是状态,其他的都是数据——包括末尾的 F7(十进制的 247),它表示 Sysex 消息的结束。

问题是Java中的字节被限制在-128..127的范围内,所以我不能在字节数组中发送F7。但是 SysexMessage 的 JavaDoc 似乎没有注意到这一事实,它说:“如果该消息包含该消息的所有系统专有数据,则它应该以状态字节 0xF7 结尾。”

关于如何正确发送最后一个字节的任何建议?我是否误解了 SysexMessage 的 JavaDoc?

0 投票
2 回答
1058 浏览

audio - 为 Windows 编写 MIDI 的最佳方法是什么?

我正在寻找一个小程序,它接收来自外部设备的输入,然后将 MIDI 信号发送到任何 MIDI 兼容软件。从 MIDI 的角度来看,最好的方法是什么?有没有我应该研究的特定库?

谢谢。

0 投票
3 回答
8679 浏览

android - Android 上的动态 Midi 生成和播放:可能吗?

奇怪的是,我发现 Android 中不支持 Midi。唯一接近的是 Jetplayer,但这只需要一个现有的 .jet 文件。

我想动态生成一个有一定间隔的midi文件并播放它。我什至考虑过手动创建一个带有音调的 .jet 文件,然后使用 jet 播放器对其进行转置,但它会将转置限制为 -12、+12。这对我来说不太好。

Android 上还有一个 ToneGenerator,但它仅限于预定义的音调,无法转置。

有人知道如何在 Android 上实现 midi 生成和播放吗?

0 投票
1 回答
3527 浏览

windows - Windows“Midi Mapper”发生了什么?

多年前我写了一个 Windows 程序,它通过向“midi mapper”(然后发送到我声卡上的 midi-synth)发送音符来创建音乐

今天,我有一个软合成器,据称它接受 midi 信息,所以我认为应该可以使用今天的 midi-mapper 将midi输出从我的程序路由到软合成器。

windows中显然不再有midi-mapper应用程序,但我的程序仍然可以工作(在XP上),因为它驱动内置的声卡合成器,所以windows中必须有某种midi处理层。我怎么能做到这一点?也许将midi重定向到软合成器?

0 投票
3 回答
3324 浏览

java - MidiSystem.getSequencer() 返回音频设备不可用

我一直在不断地抛出异常。当我尝试创建一个新的 Sequencer 对象时,我不断收到 javax.sound.midi.MidiUnavailableException: Audio Device Unavailable 异常。所以,这里是代码:

这是完整的错误(编译时):

首先我无法在我的电脑上播放 MIDI 文件,但后来我让它工作了,所以现在我可以播放 MIDI 文件了,没关系。我什至尝试关闭使用我的声卡的每个进程,但错误仍然存​​在。任何人都可以帮助我吗?

0 投票
1 回答
1316 浏览

c# - midiInGetDevCaps Midi 设备名称

我已使用此链接中的以下代码。

从 C# 中的 MIDI 端口获取信号

我想知道我需要添加什么才能获得设备名称列表。我查看了 MSDN 网站,发现我需要实现midiInGetDevCaps及其关联的结构。但是我以前从未真正对 dll 导入和结构做过任何事情,所以我有点迷茫。

0 投票
4 回答
6231 浏览

java - 除了 javax.sound.midi 之外,Java 中一个简单的免费 MIDI 实现:有吗?

问题是:Android 没有实现javax.sound.midi.

我需要一个简单的免费库,可以让我创建简单的 1-track MIDI 文件。我在网上搜索它,但找不到任何东西,因为一切都使用 javax.sound.midi 。

许可证必须是我不需要开源我的链接应用程序的许可证。

有任何想法吗?

我还研究了文件格式本身。但是,我完全不熟悉使用字节、十六进制的东西等。

所以,另一个选择是:有没有什么简单的 midi 实现可以用作参考?

0 投票
5 回答
6682 浏览

javascript - 在 javascript 中生成 MIDI

我想在 javascript 中生成一系列 MIDI 音符,然后播放它。许多插件支持 MIDI,但我不知道任何支持“数据:”URL。生成 MIDI 内容没什么大不了的——但是将这些内容输入播放器才是。任何人都知道如何做到这一点 - 如果不是一般情况下,那么至少对于 QuickTime 这样的特定插件?