【发布时间】:2018-10-27 14:27:55
【问题描述】:
我想使用 AudioKit 振荡器以给定的频率播放非常基本的声音。
例如:播放一个简单的 400Hz 正弦波 50 毫秒,然后 100 毫秒静音,然后播放 600Hz 50 毫秒……
我有一个金属视图,我在其中渲染一些视觉刺激。我的意图是使用基本的 AKOscillator 和 CADisplayLink 的渲染功能在某些帧播放/停止声音。
我尝试使用 oscillator.play() 和 oscillator.stop() 或使用 oscillator.amplitude = 0 和 oscillator.amplitude = 1 更改幅度,但两种情况下的结果都是大约 10 毫秒的抖动。
如果我先创建 .wav 文件,然后用AKPlayer.play() 播放它们,则时间是正确的。
我想要随时灵活地使用任何频率。我怎样才能做类似于第一种方法的事情?将振荡器包裹在 MIDI 乐器中是可行的方法吗?
【问题讨论】:
-
你试过将rampTime(开发分支中的rampDuration)设置为零吗?
-
是的,rampTime 设置为零。我正在用示波器测量屏幕的变化和声音的变化,所以目前我没有注意爆裂声和咔嗒声。屏幕表现非常准确,误差小于 1 毫秒,但声音不是。