在iPhone上通过编程制作音乐?

16

我对iPhone上的音频和音乐一窍不通,或者说对任何平台都不熟悉。

假设我想制作一个简单的钢琴应用程序 - 是否可以通过程序动态生成每个键的声音?

或者我需要为每种可能的声音提供.wav文件吗?

我想知道GarageBand这样的程序是如何提供如此多种多样的声音的 - 他们是有每种可能的声音的文件吗?

或者有没有一种方法来动态生成这些类型的声音?

编辑: 我找到了这篇非常好的文章,描述了我想做的事情,这个人甚至还有一个小钢琴的示例项目,所有的声音都是通过程序动态生成的。

2个回答

9
你可以按照教程中描述的方式以编程方式生成音调。这里的示例向你展示如何使用音频单元生成纯正弦波。
由于傅里叶定理,任何(周期性)连续函数都可以表示为不同振幅和相位的正弦函数之和。利用这一点,你可以混合其中几个函数来模拟乐器的声音。然而,这需要大量的研究和对波动力学和微积分的深刻理解,因此这并不是一个简单的任务。

有没有想法如何在6.1 SDK模拟器上运行教程项目?它只能在设备上运行。 - Snowman
@mohabitar 那可能有原因(模拟器上某些功能不可用)。 - user529758

3
钢琴合成器通常采用采样播放来实现 - 这也包括现实中的数字钢琴。 通常每个按键使用不到一个采样,结合DDS振荡器

高质量的数字钢琴合成器还带有按键按下、维持、阻尼踏板打开和抬起等动作的样本,以不同的按键速度混合在一起。

VST3 SDK中有一个合成器的源代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接