我找不到一种方法来声明一个AKOperationEffect数组。
我有两个单独声明的“调制器”。如何使用let modulator = [AKOperationEffect]()才能像使用AKOscillator一样使用modulator.append(AKOperationEffect())?当我这样做的时候,它会要求我提供一个初始化参数,但我不知道它是什么。我敢肯定,这门课有一个基本的误解,我无法从教程中找出。
谢谢你的帮助!
import Foundation
import AudioKit
class AudioEngine {
var oscillator = [AKOscillator]()
var dualMixer = [AKMixer]()
init() {
for index in 1...8 {
oscillator.append(AKOscillator())
oscillator[index-1].amplitude = 1
oscillator[index-1].frequency = 110 * index
}
for index in 1...4 {
dualMixer.append(AKMixer(oscillator[index-1], oscillator[index+2]))
}
let modulatorOne = AKOperationEffect(dualMixer[0]) { input, parameters in
return input * ((AKOperation.sineWave(frequency: parameters[0], amplitude: 1) + 1) / 2)
}
let modulatorTwo = AKOperationEffect(dualMixer[1]) { input, parameters in
return input * ((AKOperation.sineWave(frequency: parameters[0], amplitude: 1) + 1) / 2)
}
modulatorOne.parameters[0] = 2
modulatorTwo.parameters[0] = 3
modulatorOne.start()
modulatorTwo.start()
let mixer = AKMixer(modulatorOne, modulatorTwo)
AudioKit.output = mixer
do {
try AudioKit.start()
} catch {
print(error)
}
}
}发布于 2018-07-20 07:51:36
Effects与生成器的不同之处在于它们需要输入,这就是initialize参数。振荡器不接受任何输入,因此可以不使用任何东西进行初始化。
https://stackoverflow.com/questions/51427582
复制相似问题