在ios中真的很简单的wave synth / table

时间:2011-11-18 15:44:54

标签: ios audio wav remoteio sound-synthesis

我想制作一个非常简单的合成器。

简而言之,我想播放一个wav文件,让它在特定点循环,直到触摸被释放。

我正在寻找一些示例代码,(不需要是免费的)。

对于这样一个基本问题,我一直在谷歌上搜索,虽然这个确切的主题似乎没有任何内容,除非我错过了一些重要的术语。

另外,我正在描述的是波表合成器还是音板?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

您需要将声音数据存储在内存中,并使用某种read()命令填充要发送到声卡的字节数组。 read()命令必须跟踪它在读取之间的位置,因此必须保持持久指针。您将测试指针的位置,看看您是否已到达终点,并在需要时重置为开头。

具体情况将取决于您选择的语言。

我用Java做了这个,增加了以不同速度播放的可能性。 http://www.hexara.com/VSL/VSL2.htm 这有点迟钝。自从发布以来我已经学到了一点,但还没有回去修复它。程序请求权限,并从计算机加载wav文件。它应该是16位,立体声,44100fps,小端。

WaveTable合成略有不同,因为只存储了一次波的迭代并将其用作源数据。

以下是斯坦福大学CCRMA网站的简短讨论: https://ccrma.stanford.edu/~bilbao/booktop/node9.html 我用这种方法制作了一个Java“Theremin” http://www.hexara.com/VSL/JTheremin.htm

使用WaveTable,您可以决定数组的大小。如果它是2的幂,则可以在每次递增后对指针进行位掩码,这比进行比较和复位更快。