AudioKit:从 AKOperationGenerator 淡入

AudioKit: Fade in from AKOperationGenerator

有没有办法淡入来自 AKOperationGenerator 的声音?

例如在下面的代码中,.start() 以全振幅开始点击。

let whiteNoiseGenerator = AKOperationGenerator { _ in

    let white = AKOperation.whiteNoise()
    return white
}


AudioKit.output = whiteNoiseGenerator
whiteNoiseGenerator.start()

给这只猫剥皮的方法有很多。我给你一对:

一种方法是将噪音发生器包裹在 AKBooster 中:

let volumeControl = AKBooster(whiteNoiseGenerator)
volumeControl.gain = 0
volumeControl.rampTime = 1 // number of seconds to fade in/out
AudioKit.output = volumeControl
AudioKit.start() // Don't forget this, I assume you just didn't paste it in
whiteNoiseGenerator.start() // nothing will be heard

然后通过设置

来启动和停止声音
volumeControl.gain = 1 // or 0 for stopping

或者,我知道您想知道如何在操作的上下文中执行此操作,因此您可以通过为操作参数提供增益和滑音时间来做到这一点:

let whiteNoiseGenerator = AKOperationGenerator { parameters in

    let white = AKOperation.whiteNoise() * parameters[0].portamento(halfDuration: parameters[1])
    return white
}

whiteNoiseGenerator.parameters = [0,0.1] // first number is gain, second is portamento time
AudioKit.output = whiteNoiseGenerator
AudioKit.start()
whiteNoiseGenerator.start()

然后,当您想打开噪音时,请执行以下操作:

whiteNoiseGenerator.parameters[0] = 1

您将在 0.1 秒内获得平滑的全音量变化。

HTH!