1

我正在制作一个简单的游戏来学习一门新语言。我正在为游戏收集一些音乐,并想使用 MIDI 格式,以便我可以控制音轨的流动(即我想有一个只播放一次的介绍,当歌曲循环播放。)

我很难找到有关如何修改现有 MIDI 文件的信息,以便它们可以向合成器发送控制更改信号。有没有人有这方面的经验?


我认为我应该对我原来的问题更清楚。我正在使用负责播放音乐的现有游戏引擎。我的印象是这个控制更改值必须直接嵌入到 MIDI 文件本身中,因为我无法控制合成器。从手册:

MIDI 文件通过 DirectMusic 合成器播放。如果 BGM MIDI 文件包含控制更改值 111,则该值被识别为歌曲到达结尾后开始重复的位置。

我希望我能以编程方式做到这一点。我想我在这里追求的是某种编辑器,它可以让我修改我已经拥有的 MIDI 文件。

4

3 回答 3

4

听起来你真正想要的是一个MIDI 编辑器

于 2008-08-29T06:25:12.960 回答
3

尝试查看Midi 1.0 规范

这是一个控制更改消息的表格,尽管看起来您正在寻找一种在软件中执行此操作的方法。是的?

您可以尝试将其作为原始 midi 数据发送(即该表上的消息)

再次查看您的问题...我的答案没有那么有用...

如果我是你,我会做的是将介绍分开到它自己的文件中,然后你有一个文件包含你想要循环的内容

您还可以查看标准 Midi 文件格式 (SMF)的规范

于 2008-08-29T06:08:55.197 回答
2

如果您使用 DirectMusic 演奏,DirectMusicProducer 可能是您最好的免费选择我不相信 MIDI 记录功能将包括控制更改,但您的引擎可能支持播放更灵活的片段文件。

大约 10 年前,我使用的唯一 MIDI 音序器的价格约为 300 美元(而且似乎不再存在),但我不知道有任何高质量的免费 MIDI 文件音序器。(请注意,“MIDI 编辑器”可能与“MIDI 文件编辑器”或“MIDI 音序器”不同)

于 2008-08-29T06:25:28.043 回答