【问题标题】:CoreMIDI Manufacturer PresetsCoreMIDI 制造商预设
【发布时间】:2013-01-11 14:28:47
【问题描述】:

我用 CoreMIDI 构建了一个虚拟 MIDI 控制器,并想为 ControlChange 导入制造商预设(即 cc 值、与 cc 编号关联的效果名称、预设名称等)。有没有一种简单的方法可以做到这一点,还是我需要对这些信息进行硬编码?我在 MMA 网站上找到了 MIDI 制造商 ID,这可以用来获取虚拟乐器中的特定数据吗?谢谢。

【问题讨论】:

    标签: objective-c cocoa audio core-audio coremidi


    【解决方案1】:

    MIDI 从未提供自我描述的方式。

    已经努力标准化 MIDI 参数集,例如 General MIDI,以及供应商标准,例如 Yamaha XGRoland GS,但即使在来自同一供应商的乐器中,控制集也不一致。也许不足为奇,至于这样的工作,用于声音的样本数据也需要标准化 - 当然,这是乐器之间的区别。

    倾向于发生的情况是,制造商以完全非标准化的方式大量使用SYSEX 来实现控制功能(尤其是在他们的自己的产品中)。

    构建任何类型的通用 MIDI 编辑器都需要您为要控制的每个设备创建一个映射表,以描述控件及其 MIDI 映射。您通常会在每个乐器的用户手册中找到包含数据的大量 MIDI 实现图表。

    【讨论】:

    • 我认为可能是这样,但一个人必须做梦。感谢您的回复。
    • 这个bunch 有一个商业产品,几乎可以满足您的描述。还有许多其他延迟问题需要解决,例如最大SYSEX 块大小和块间延迟。当您以太快的速度发送太多数据时,其固件会崩溃的设备。是的,认真的。 MIDI 真的不适合这个目的,需要快速消失。但可能不会。
    【解决方案2】:

    截至 2020 年,这可能最好通过 MIDI 能力查询来完成。参数调用可以通过 MIDI-CI 属性交换来完成。

    【讨论】:

      猜你喜欢
      • 2020-02-02
      • 2011-06-30
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      相关资源
      最近更新 更多