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

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


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

MIDI 文件通过 DirectMusic 合成器如果 BGM MIDI 文件包含控制更改值 111,该值被确认为 之后,歌曲将开始重复 到达终点。

我希望我能以编程方式完成它。我想我在这里需要的是某种编辑器,它允许我修改我已有的 MIDI 文件。

有帮助吗?

解决方案

直接音乐制作人 如果您使用 DirectMusic 进行演奏,这可能是您最好的免费选择。我不相信 MIDI 记录功能将包括控制更改,但您的引擎可能支持播放更加灵活的分段文件。

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

其他提示

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

尝试查看 Midi 1.0 规格

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

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

再次查看你的问题...我的回答没那么有用...

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top