AudioKit v5 振荡器频率斜坡问题
Issue with AudioKit v5 oscillator frequency ramp
我是 AudioKit 的新手,正在使用 v5。振荡器频率斜坡似乎没有按预期工作。以下示例有 2 个连续的斜坡。首先它上升到 440-880,但随后听起来像是 880-660 而不是 440-660。
如果我注释掉 osc.$frequency.ramp(to: 660.0, duration: 1.0)
,它会上升到 440-880,然后非常快地上升到 440 但会到达那里。
似乎在斜坡后没有重置。
(sleep
仅供测试。)
这是一个错误吗?还有什么我应该做的吗?任何见解将不胜感激!谢谢!
import Cocoa
import AudioKit
class Test {
let akEngine = AudioEngine()
let osc = Oscillator()
func setup() {
osc.amplitude = 0.1
akEngine.output = osc
do {
try akEngine.start()
} catch {
print("Couldn't start AudioEngine.")
}
osc.frequency = 440.0
osc.start()
osc.$frequency.ramp(to: 880.0, duration: 1.0)
sleep(2)
osc.stop()
sleep(1)
osc.frequency = 440.0
osc.start()
osc.$frequency.ramp(to: 660.0, duration: 1.0)
sleep(2)
osc.stop()
}
}
这可能值得解释,或者它应该像上面那样固定工作,但是一旦开始自动更改,您应该坚持使用自动化语法,而不是跳到简单的值设置。对您来说,这意味着只需将 osc.frequency = 440
替换为 osc.$frequency.ramp(to: 440.0, duration: 0.0)
,我相信您会得到想要的效果。
设置参数 (osc.frequency = 440.0
) 会导致使用一个微小的斜坡来避免拉链(相当于 osc.$frequency.ramp(to: 440.0, duration:epsilon)
)。测试代码立即应用另一个斜坡,覆盖拉链斜坡。
如果您在第二个 osc.start()
之后插入 sleep
,您会听到快速的拉链斜坡回到 440。
我是 AudioKit 的新手,正在使用 v5。振荡器频率斜坡似乎没有按预期工作。以下示例有 2 个连续的斜坡。首先它上升到 440-880,但随后听起来像是 880-660 而不是 440-660。
如果我注释掉 osc.$frequency.ramp(to: 660.0, duration: 1.0)
,它会上升到 440-880,然后非常快地上升到 440 但会到达那里。
似乎在斜坡后没有重置。
(sleep
仅供测试。)
这是一个错误吗?还有什么我应该做的吗?任何见解将不胜感激!谢谢!
import Cocoa
import AudioKit
class Test {
let akEngine = AudioEngine()
let osc = Oscillator()
func setup() {
osc.amplitude = 0.1
akEngine.output = osc
do {
try akEngine.start()
} catch {
print("Couldn't start AudioEngine.")
}
osc.frequency = 440.0
osc.start()
osc.$frequency.ramp(to: 880.0, duration: 1.0)
sleep(2)
osc.stop()
sleep(1)
osc.frequency = 440.0
osc.start()
osc.$frequency.ramp(to: 660.0, duration: 1.0)
sleep(2)
osc.stop()
}
}
这可能值得解释,或者它应该像上面那样固定工作,但是一旦开始自动更改,您应该坚持使用自动化语法,而不是跳到简单的值设置。对您来说,这意味着只需将 osc.frequency = 440
替换为 osc.$frequency.ramp(to: 440.0, duration: 0.0)
,我相信您会得到想要的效果。
设置参数 (osc.frequency = 440.0
) 会导致使用一个微小的斜坡来避免拉链(相当于 osc.$frequency.ramp(to: 440.0, duration:epsilon)
)。测试代码立即应用另一个斜坡,覆盖拉链斜坡。
如果您在第二个 osc.start()
之后插入 sleep
,您会听到快速的拉链斜坡回到 440。