iOS中的ADSR,示例代码?
Posted
技术标签:
【中文标题】iOS中的ADSR,示例代码?【英文标题】:ADSR in iOS, sample code? 【发布时间】:2011-10-27 19:32:31 【问题描述】:我一直在寻找一些示例,这些示例展示了如何在 ios 中使用音频样本(最好是带有循环点的 WAV 文件,但那是次要的)来执行 ADSR。我猜大多数编写采样器/合成器应用程序的人都会为此使用音频单元。有人知道在任何 iOS 音频库中显示 ADSR 的好代码示例吗?
【问题讨论】:
【参考方案1】:在新的 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
【讨论】:
【参考方案2】:您可以在 Apple 的 SinSynth 示例中找到(非常基本的)一个。那是一个 AU,但它应该演示如何将包络应用到音频缓冲区。我不记得了——它可能只是一个 ASR,但是一旦你了解了现有程序,添加第四个阶段就很简单了。实现就在笔记的渲染中。
信封生成器不是特定于平台的。
musicdsp.org 将是一个更好的资源,如果您想要的不仅仅是朝着正确的方向推进。
【讨论】:
【参考方案3】:MusicDSP 拥有带有攻击/释放的example envelope follower 的源代码。如果您理解这一点,那么维持/衰减应该是非常合乎逻辑的。 ;)
但 ADSR 包络基本上只是使用状态机将增益应用于输出信号的问题。每个状态都有一个起始值、结束值和持续时间。计算那条线的斜率和沿它的每个点的值在你高中的代数课上就已经讲过了。 ;) 如果你想真正花哨,你可以实现其他类型的曲线,但概念保持不变。
【讨论】:
感谢您对使用状态机的评论,我也这么认为。以上是关于iOS中的ADSR,示例代码?的主要内容,如果未能解决你的问题,请参考以下文章
WWDC 2010 示例代码中的 MyImagePicker 不显示任何内容
c++ OpenCV 示例到 iOS 代码和 UIImage