2015-10-18 8 views
1

Я использую AVAudioUnitSampler для воспроизведения некоторых миди-звуков, у меня есть звуковое сопровождение, и вы успешно используете начальную ноту, остановите запись и примените midi-команды высоты тона. Теперь я пытаюсь включить команды aftertouch или давления, как это называется в AVFoundation.Команда Aftertouch/Pressure Midi не работает в AVFoundation

Так что мой код выглядит примерно так (упрощенно):

self.midiAudioUnitSampler.startNote(60, withVelocity: 60, onChannel: 0) 
//some time later... 
self.midiAudioUnitSampler.sendPressure(20, onChannel: 0) 

Нота напевая прочь, но команды посыла давления, кажется, не имеют никакого влияния на звуковой выход. Я пробовал использовать давление отправки и sendPressureForKey и не повезло.

Что я делаю неправильно или я не понимаю, что такое sendPressure? Я ожидаю, что он изменит громкость записки после ее воспроизведения.

Btw У меня есть настройка, в которой воспроизводится нота, и у меня есть отдельный элемент управления, чтобы стрелять по давлению. Команды в образце в какое-то время после запуска воспроизведения заметок.

ответ

1

Я предполагаю, что сэмплер не знает, что делать с сообщениями послекасания. Если вы хотите изменить громкость ноты (и любые другие ноты играет) вы можете отправить ваше значение параметра 7 (объем) вместо:

self.midiAudioUnitSampler.sendController(7, withValue: 20, onChannel: 0) 

Из моего опыта у меня есть ощущение, что сэмплер делает реагирует на MIDI-контроллер 7.

+0

спасибо, что я пришел к тому же выводу тоже, я не думаю, что дешевые .sf2-файлы имеют эти данные там. Однако не знал о параметре 7, есть ли у вас хорошая ссылка на то, что обычно работает? –

+0

К сожалению, я не знаю, но я обнаружил, что CC# 11 (выражение) также работает. Громкость (7) обычно используется только один раз в начале песни для каждого MIDI-канала, тогда как выражение (11) используется для создания динамического тома во время воспроизведения, например. крещендо. Sampler также реагирует на Pan (10), Sustain (64), Sostenuto (66), All Notes Off (120) и All Controllers Off (121). – bio