我正在使用AVAudioUnitSampler来播放一些midi的声音,我已经加载了一个声音字体,成功地使用了开始音符、停止音符和应用音高弯曲midi命令。我现在正试图加入余震或压力命令,因为它在AVFoundation中被称为。
因此,我的代码看起来大致如下(简化):
self.midiAudioUnitSampler.startNote(60, withVelocity: 60, onChannel: 0)
//some time later...
self.midiAudioUnitSampler.sendPressure(20, onChannel: 0)音符在嗡嗡作响,但发送压力指令似乎对声音输出没有任何影响。我试过使用发送压力和sendPressureForKey到,但没有运气。
我做错了什么,还是我误解了sendPressure的工作?我希望它在播放后会改变音符的音量。
顺便说一下,我有一个播放音符的设置,我有一个单独的控件,可以在音符回放启动后的某个时候将pressureCommands触发到采样器中。
发布于 2016-05-02 22:47:23
我的猜测是,采样器不知道如何处理回响信息。如果要更改音符的音量(以及播放的任何其他音符),则可以将值发送到参数7(音量):
self.midiAudioUnitSampler.sendController(7, withValue: 20, onChannel: 0)根据我的经验,我有一种感觉,采样器确实响应MIDI控制器7。
https://stackoverflow.com/questions/33201421
复制相似问题