在iPhone上以编程方式制作音乐?

时间:2012-12-25 00:34:46

标签: iphone ios cocoa-touch audio

对于iPhone上的音频和音乐,或者在任何平台上,我都很天真。

说我想制作一个简单的钢琴应用程序 - 是否可以通过编程方式为每个键生成声音?

我是否必须为每个可能的声音提供一个.wav文件?

我想知道像GarageBand这样的程序如何能够提供如此多样化的声音 - 它们是否可以为每种可能的声音提供文件?

有没有办法动态生成这些声音?

编辑:我发现this most excellent article正好描述了我想要做的事情,这家伙甚至有一个带小钢琴的示例项目,所有声音都是以编程方式生成的。

2 个答案:

答案 0 :(得分:9)

您可以按照此tutorial中的说明以编程方式生成音调。此处的示例向您展示了如何使用音频单元生成纯正弦波。

由于傅立叶定理,任何(周期性)连续函数都可以表示为不同幅度和相位的正弦函数之和。使用此功能,您可以混合使用其中一些功能来模拟乐器的声音。然而,这需要大量的研究和对波动力学和微积分的深刻理解,因此这不是一项微不足道的任务。

答案 1 :(得分:3)

钢琴合成器通常采用样本回放实现 - 这也包括现实世界的数字钢琴。通常,每个密钥少于一个样本与DDS oscillator一起使用。

高质量的数码钢琴合成器还可以在不同的键速下携带初始按键,延音,制音踏板打开和按键的样本,然后将它们混合在一起。

VST3 SDK

中包含一个源代码