【发布时间】:2015-09-25 04:08:50
【问题描述】:
我可以使用 MusicPlayer 的 MusicTrackSetProperty(t, kSequenceTrackProperty_MuteStatus...) 方法轻松地将 midi 音轨静音/取消静音。但是,我还没有思考如何启用/禁用轨道中的特定 MIDI 通道。轨道中的通道是否有静音/取消静音或禁用/启用属性?
这样的事情会在轨道级别完成,还是我应该以某种方式操纵 midi 合成器音频单元?
创建端点对我没有好处,因为我只得到发送到合成器的事件副本,而不是我可以看到的用于过滤合成器的回调。所以,我想在音频单元图中可能有一些可以调整的东西,但究竟是什么?
有人可能会建议打开带有 kMusicSequenceLoadSMF_ChannelsToTracks 标志的 MIDI 文件,然后简单地取消静音对应于通道的轨道并将其余轨道静音。我试过这样做,但实际上在没有 kMusicSequenceLoadSMF_ChannelsToTracks 标志的情况下打开 midi 文件时我得到了 /less/ 曲目。奇怪的。或许我应该明白为什么会这样吧?这是我的 MIDI 文件:16 个轨道,每个轨道包含 6 个 MIDI 通道。没有 kMusicSequenceLoadSMF_ChannelsToTracks,我得到 16 首曲目,带有 kMusicSequenceLoadSMF_ChannelsToTracks 标志,12。不应该是 16*6 曲目吗?
感谢您的帮助。最好的给你。 /杰
【问题讨论】:
标签: ios macos core-audio midi coremidi