【问题标题】:AKMIDICallbackInstrument handling more than 16 channelsAKMIDICallbackInstrument 处理超过 16 个通道
【发布时间】:2020-10-27 03:41:15
【问题描述】:

我一直在使用 AKMIDICallbackInstrument 将单个音频单元连接到 Apple 的音序器。这在过去运行良好,但我现在想将其扩展到多音色环境中。由于 AKMIDICallback 只允许传递(status, note, velocity),我不确定如何处理 > 16 个部分/曲目。我知道回调仪器使用端点连接到轨道,因此传递的事件将只是来自连接轨道的事件,但是除了通过 MIDI 通道之外,如何将这些事件路由到特定的音频单元? (原则上,使用 Apple 的音序器,我可以拥有数百个音轨,所有音轨都在 MIDI 通道 1 上发送......)

【问题讨论】:

    标签: audiokit coremidi


    【解决方案1】:

    呃...好吧,我曾尝试通过覆盖 receivedMIDINoteOn(noteNumber:velocity:channel:portID:offset:) 来绕过闭包的限制,但我想这只是为了从硬件接收原始 MIDI 字节。

    解决方案是覆盖play(noteNumber:velocity:channel:)。由于这是一个实例方法(不是闭包),您可以引用self 来处理所需的事件(即,“self”可以指向所需的音频单元)。我实际上不再使用AKMIDICallbackInstrument,只是继承AKMIDIInstrument...似乎更适合我的目的。

    【讨论】:

      猜你喜欢
      • 2022-07-16
      • 2015-03-03
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2011-05-15
      • 2010-10-26
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多