У меня есть приложение 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?