Звук щелчка / застежки-молнии AudioKit при изменении значений параметров - PullRequest
1 голос
/ 27 мая 2020

У меня есть приложение iOS с цепочкой эффектов AudioKit, построенное следующим образом:

IN --\ AKEqualizerFilter -- AKLowPassFilter -- AKChorus -- AKDelay -- AKReverb ---|
      \___________________________________________________________________________| DryWet -> OUT

Количество каждого эффекта контролируется его локальным микшером Dry / Wet, и вся цепочка может быть вводили / выводили с помощью окончательного смесителя сухого / влажного воздуха Я обнаружил, что при перемещении ползунков, управляющих отдельными параметрами AU, особенно реверберацией и задержкой, я слышу щелчки / шум застежки-молнии. Я пробовал разные варианты в AKSettings.bufferLength и AKSettings.rampDuration, но, похоже, не могу от них избавиться. Могу ли я попробовать еще какие-нибудь стратегии?

Ни один из примеров, которые я видел, не предполагает, что существует какой-либо особый способ доступа к параметрам, поэтому они просто вызываются из нашего пользовательского интерфейса с использованием generi c UISliders. Тем не менее, я попытался вызвать изменение параметра в основном потоке, но ничего не изменилось.

ОБНОВЛЕНИЕ 3: Хорошо, так что копаться дальше, кажется, что AKOperationEffect - это способ go, однако я до сих пор не знаю, как это контролировать. Я установил это так:

var delTime = 0.33
if useSync == true {
    let tempo = SequencerController.sharedInstance.currentTempo
    let beatDur = (60000 / tempo) / 1000
    // we'll make the default a dotted-eighth
    delTime = 0.75 * beatDur
}
let opEffect = AKOperationEffect(input) { input, params in
    return input.smoothDelay(time: params[0], feedback: params[1], samples: 1024, maximumDelayTime: 10.0)
}
opEffect.parameters = [delTime, 0.]

, где input от предыдущего узла - итак, в этой цепочке от хора. Это дает мне задержку time (без застежки-молнии!), Но я не могу найти способ контролировать сухую / влажную смесь. Возможно, это невозможно с AKOperationEffect? ​​

...