如何在MIDI文件中嵌入控制更改命令

时间:2008-08-29 05:49:06

标签: midi

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

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


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

  

MIDI文件通过。播放   DirectMusic合成器。如果是BGM MIDI   file包含控件更改值   111,该值被识别为where   这首歌将在它之后开始重复   到了最后。

我希望我能以编程方式完成。我想我之后的是某种编辑器,它允许我修改我已经拥有的MIDI文件。

3 个答案:

答案 0 :(得分:4)

听起来你真正想要的是midi editor

答案 1 :(得分:3)

尝试查看Midi 1.0 spec

这是control change messages的表格,虽然看起来你正在寻找一种在软件中执行此操作的方法。是吗?

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

再次查看你的问题......我的答案并不那么有用......

如果我是你,我会做什么,将其引入自己的文件,然后你有一个包含只是你想要循环的文件。

您还可以查看Standard Midi File format (SMF)

的规范

答案 2 :(得分:2)

如果您正在使用DirectMusic,

DirectMusicProducer可能是您最好的免费选项。我不相信MIDI记录功能会包含控件更改,但您的引擎可能支持播放更灵活的段文件。

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