AudioUnit 可以实现实时变调吗?

发布于 2024-11-17 18:11:23 字数 124 浏览 6 评论 0原文

我正在 AudioUnit 的帮助下播放两个动态生成的正弦波音调。我需要为用户提供一个 UISlider,帮助他动态更改音调。我无法使用 AudioUnits 设置音调,请提供一些代码片段以在 AudioUnits 的帮助下更改音调。

I am playing two sine wave tone generated on the fly with the help of AudioUnit. I need to give the user a UISlider which helps him to change the pitch of the tone on the fly. I am stuck in setting pitch for the tone with AudioUnits, please provide some code snippet to change the pitch with help of AudioUnits.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽清梦 2024-11-24 18:11:23

更改生成的波形(例如正弦波)的音调,并将其复制到 AudioUnit 回调缓冲区中,当然是可能的。具体如何更改它取决于您如何生成正弦波。如果通过表查找,则可以更改表步长并进行插值。如果通过调用 sinf() 函数,您可以更改函数调用中每个样本的增量相位变化,以匹配与滑块位置的某种关系。然而

,术语“实时音调变换”通常指另一种不同且更复杂的DSP处理,例如用于组合时间音调修改的相位声码器。你指的是哪一个?

Changing the pitch of a generated waveform, such as a sine wave, being copied into an AudioUnit callback buffer, is certainly possible. Exactly how to change it depends on how you are generating the sine wave. If by table look up, then you can change the table step size and interpolate. If by calling the sinf() function, you can change the delta phase change per sample in the function call to match some relationship with your slider position. etc.

However the term "real-time pitch shifting" often refers to another different and more complicated DSP process, such as a phase vocoder used for combined time-pitch modification. Which do you mean?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文