java - 加载仪器

标签 java instruments midi javasound

我是JAVA MIDI新手,我遇到了一个问题。我想加载一个 MIDI 文件,然后设置几个标签,其中包含每个轨道所使用的每种乐器的名称例如,如果 MIDI 文件有 5 个轨道(每个轨道只有一种乐器),那么我将获得 5 个标签,每个标签都有每个轨道上使用的乐器的名称.

有什么方法可以查看 MIDI 文件中每个轨道使用的乐器(函数、方法...)?

最佳答案

一旦您隔离了编排中的每个音轨,就有两种不同的方法来确定应该演奏它的乐器。

其中一个是 ID 为 0x04 的 MIDI 元消息将与乐器名称作为字符串一起出现。看这个great page detailing the MIDI file format了解详情。

第二种方式是 MIDI 程序更改消息将出现在轨道的开头。假设 MIDI 文件设置为使用 GM(通用 MIDI)乐器,您可以将程序更改消息的数据关联到 GM instrument。 .

请注意,程序更改可以出现在 MIDI 轨道中的任何位置,并且音序器应该相应地处理它们。尽管您在野外看到的大多数 MIDI 文件不会在轨道中间使用程序更改,但请记住,这是标准允许的,并且可能会发生。

关于java - 加载仪器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948723/

相关文章:

ios - iOS 应用程序工具中的其他部分是什么?

c++ - 使用 Microsoft GS Wavetable Synth 在 Windows 10 上打开 midiOutOpen 失败

java - 通用 Java 包名称

java - ServletContext 属性和静态属性

java - 无法使用 iText Java 重命名 PDF 中的表单字段

java - 解析JSONObject时如何制作容错代码?

ios - iPhone内存管理问题

ios - XCODE 6 分配工具不显示自己的类名

c++ - 顺序存储不同类型的对象

javascript - 使用基于 javascript 浏览器的 midi.js 来创建鼓声?