代码之家  ›  专栏  ›  技术社区  ›  Ed Swangren

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

  •  1
  • Ed Swangren  · 技术社区  · 16 年前

    为了学习一门新语言,我正在做一个简单的游戏。我正在为游戏收集一些音乐,我想使用MIDI格式,这样我就可以控制曲目的流(即,我想有一个仅播放一次的介绍,当歌曲循环时不再播放)。

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


    我想我应该更清楚地回答我原来的问题。我正在使用一个现有的游戏引擎来播放音乐。我觉得这个控件更改值必须直接嵌入到MIDI文件中,因为我无法控制合成器。从手册中:

    MIDI文件通过 直接音乐合成器。如果一个BGM MIDI 文件包含控件更改值 111.该价值确认为 这首歌之后就开始重复了 到达终点。

    我希望我能用程序来实现。我想我接下来要做的是某种编辑器,它允许我修改已有的MIDI文件。

    3 回复  |  直到 13 年前
        1
  •  2
  •   Zooba Necrolis    16 年前

    DirectMusicProducer 如果您正在使用DirectMusic播放,可能是您最好的免费选择。我不认为MIDI录制功能会包括控制更改,但您的引擎可能支持播放更灵活的段文件。

    我使用的唯一一个MIDI音序器大约在10年前花费300美元(美元),但我不知道任何质量良好的免费MIDI文件音序器。(请注意,“midi editor”可能与“midi file editor”或“midi sequencer”不同)

        2
  •  4
  •   Jiaaro    16 年前

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

        3
  •  3
  •   Jiaaro    16 年前

    尝试查看 Midi 1.0 spec

    这是一张 control change messages 尽管看起来你正在寻找一种在软件中实现这一点的方法。对?

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

    再次审视你的问题…我的答案没那么有用…

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

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