如何将控制更改命令嵌入MIDI文件中
时间:2020-03-05 18:44:52 来源:igfitidea点击:
我正在做一个简单的游戏,以学习一种新的语言。我正在为游戏收集一些音乐,并且希望使用MIDI格式,以便可以控制音轨的流向(即,我希望有一个介绍,该介绍只能播放一次,而在播放时不播放歌曲循环播放。)
我很难找到有关如何修改现有MIDI文件的信息,以便它们可以将控制更改信号发送到合成器。有人对此有经验吗?
我认为我本来应该更清楚我的原始问题。我正在使用现有的游戏引擎来播放音乐。我的印象是,此控制更改值必须直接嵌入MIDI文件本身,因为我无法控制合成器。从手册中:
MIDI files are played via the DirectMusic Synthesizer. If a BGM MIDI file contains the control change value 111, that value is recognized as where the song will start repeating after it reaches the end.
我希望我可以通过编程来完成。我想这里需要的是某种编辑器,它使我可以修改已经拥有的MIDI文件。
解决方案
回答
尝试查看Midi 1.0规格
这是一张控件更改消息表,尽管我们正在寻找一种在软件中执行此操作的方法。是的?
我们可以尝试将其作为原始Midi数据发送(即该表上的消息)
再次查看问题...我的回答不是那么有用...
如果我们是我该怎么办,请将介绍内容分离到自己的文件中,然后得到一个仅包含要循环的文件的文件。
我们还可以查看标准Midi文件格式(SMF)的规范
回答
听起来像我们真正想要的是Midi编辑器
回答
如果我们正在使用DirectMusic进行播放,则DirectMusicProducer可能是我们最好的免费选择。我不认为MIDI录制功能会包含控件的更改,但是引擎可能支持播放更灵活的片段文件。
大约十年前,我使用的唯一MIDI音序器的价格约为300美元(并且似乎不再存在),但是我不知道有任何质量好的免费MIDI文件音序器。 (请注意," MIDI编辑器"可能与" MIDI文件编辑器"或者" MIDI音序器"不同)