iOS中的ADSR,示例代码?

时间:2011-10-27 19:32:32

标签: ios core-audio avaudioplayer audiounit

我一直在寻找一些示例,展示如何在iOS中使用音频样本(最好是带有循环点的WAV文件,但那是次要的)来做ADSR。我猜大多数编写采样器/合成器应用程序的人都使用音频单元。有没有人知道在任何iOS音频库中显示ADSR的好代码示例?

3 个答案:

答案 0 :(得分:2)

在新的iOS SDK 5.0中,现在有一个采样器音频单元!哪个可以做ADSR信封。

预设演示展示了如何使用采样器: http://developer.apple.com/library/ios/#samplecode/LoadPresetDemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011214

如果你想加载不同的声音格式来玩这篇文章很有帮助: https://developer.apple.com/library/mac/#technotes/tn2283/_index.html

这是iOS文档参考: http://developer.apple.com/library/ios/#documentation/AudioUnit/Reference/AUComponentServicesReference/Reference/reference.html#//apple_ref/doc/uid/TP40007291

答案 1 :(得分:1)

你可以在Apple的SinSynth样本中找到(一个非常基本的)。这是一个AU,但它应该演示如何将信封应用于音频缓冲区。我不记得 - 它可能只是一个ASR,但是一旦你理解了现有的程序,添加第四个阶段很简单。该实现正好在笔记的渲染中。

信封生成器不是特定于平台的。

musicdsp.org将是一个更好的资源,如果你想要的不仅仅是推动正确的方向。

答案 2 :(得分:1)

MusicDSP拥有攻击/释放example envelope follower的源代码。如果你理解这一点,那么维持/衰减应该是非常符合逻辑的。 ;)

但ADSR包络基本上只是通过状态机对输出信号应用增益。每个州都有一个起始值,结束值和持续时间。计算该线的斜率和沿着它的每个点的值在高中回到你的代数课程中。 ;)如果你想要真正的幻想,你可以实现其他类型的曲线,但概念保持不变。