触后/压力 Midi 命令在 AVFoundation 中不起作用
Aftertouch / Pressure Midi command not working in AVFoundation
我正在使用 AVAudioUnitSampler 来播放一些 MIDI 声音,我加载了一个 soundfont 并成功地使用了开始音符、停止音符和应用弯音 MIDI 命令。我现在正在尝试合并 AVFoundation 中调用的触后或压力命令。
所以我的代码大致如下(简化):
self.midiAudioUnitSampler.startNote(60, withVelocity: 60, onChannel: 0)
//some time later...
self.midiAudioUnitSampler.sendPressure(20, onChannel: 0)
音符嗡嗡作响,但发送压力命令似乎对声音输出没有影响。我试过使用 send pressure 和 sendPressureForKey ,但没有成功。
我做错了什么或者我误解了 sendPressure 的作用?我希望它在播放后改变音符的音量。
顺便说一句,我有一个正在播放音符的设置,并且我有一个单独的控件,可以在音符播放开始后的某个时间将 pressureCommands 发射到样本中。
我的猜测是采样器不知道如何处理触后消息。如果你想改变音符的音量(以及任何其他演奏的音符),你可以将你的值发送到参数 7(音量):
self.midiAudioUnitSampler.sendController(7, withValue: 20, onChannel: 0)
根据我的经验,我感觉采样器确实响应 MIDI 控制器 7。
我正在使用 AVAudioUnitSampler 来播放一些 MIDI 声音,我加载了一个 soundfont 并成功地使用了开始音符、停止音符和应用弯音 MIDI 命令。我现在正在尝试合并 AVFoundation 中调用的触后或压力命令。
所以我的代码大致如下(简化):
self.midiAudioUnitSampler.startNote(60, withVelocity: 60, onChannel: 0)
//some time later...
self.midiAudioUnitSampler.sendPressure(20, onChannel: 0)
音符嗡嗡作响,但发送压力命令似乎对声音输出没有影响。我试过使用 send pressure 和 sendPressureForKey ,但没有成功。
我做错了什么或者我误解了 sendPressure 的作用?我希望它在播放后改变音符的音量。
顺便说一句,我有一个正在播放音符的设置,并且我有一个单独的控件,可以在音符播放开始后的某个时间将 pressureCommands 发射到样本中。
我的猜测是采样器不知道如何处理触后消息。如果你想改变音符的音量(以及任何其他演奏的音符),你可以将你的值发送到参数 7(音量):
self.midiAudioUnitSampler.sendController(7, withValue: 20, onChannel: 0)
根据我的经验,我感觉采样器确实响应 MIDI 控制器 7。