【问题标题】:Is Real time pitch shifting possible with AudioUnit?AudioUnit 可以实现实时音高转换吗?
【发布时间】:2011-06-28 10:56:03
【问题描述】:

我正在播放在 AudioUnit 的帮助下动态生成的两个正弦波音调。我需要给用户一个 UISlider,它可以帮助他动态改变音调。我一直在使用 AudioUnits 设置音调,请提供一些代码 sn-p 以在 AudioUnits 的帮助下更改音调。

【问题讨论】:

    标签: signal-processing audio-streaming pitch trigonometry


    【解决方案1】:

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

    但是,术语“实时音高转换”通常指的是另一种不同且更复杂的 DSP 过程,例如用于组合时间音高修改的相位声码器。你是什​​么意思?

    【讨论】:

    • 感谢 hotpaw2 的澄清。我正在使用简单的 sinf() 函数来生成音调,因此正如您所说,音高转换应该是可能的。现在请帮助我做到这一点,我不知道如何做到这一点。如果我给出 F2#、G2、G2# 等音高值,是否可以改变音高。我的音源类似于这个cocoawithlove.com/2010/10/…
    • 你需要看一些dsp书籍。这不是一件简单的事情,别人可以为你做。
    猜你喜欢
    • 2010-11-09
    • 2015-11-29
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2011-02-27
    相关资源
    最近更新 更多