我正在为一个音乐心理学项目写一个小的网络应用程序,它将播放一个主题的一系列声音样本,并要求他们对每个样本进行评分。我需要生成一系列的音调(可能都是正弦波),并应用一个或两个基本的滤波器/效果,比如失真。实际上,我需要一个简单的合成器库。
因为它是一个web应用程序,我需要它能够播放音频文件(通过HTML5音频播放),而不仅仅是实时播放声音。我会提前生成这些文件,而不是在应用程序运行时生成,所以性能不是问题。
我最习惯使用Python,但这个应用程序很简单,所以我愿意使用几乎任何语言。流行的用于Python/Tcl的Snack库有一些基本的合成设施,但除了共振峰之外,没有任何值得提及的效果。
最自然的选择是声音设计语言,如sound,Supercollider或ChucK,但它们似乎有一个非常陡峭的学习曲线,仅仅是为了生成不同频率的正弦波,有时还会产生失真效果。
发布于 2010-12-06 06:32:05
我最终还是选择了Snack。我怀疑不存在符合我的标准的东西。我折衷地创造了“刺耳的音色”条件,我想通过混合一个方波和一点噪音来产生失真。听起来不是很好,但是我在这个项目中没有需要使用的“严酷”的具体定义。
发布于 2010-12-05 09:37:51
既然您事先已经这样做了,那么就使用Audacity吧。它能够生成正弦/方波/锯齿波(Generate > Chirp),并且有一些效果。然后,您可以保存为多种压缩格式。
如果您要创建大量文件,您可能不想坐下来手动生成每个文件。幸运的是,Audacity is scriptable。
发布于 2010-12-06 05:04:27
我不确定你是如何定义“简单”的,但你应该看看Synthesis Toolkit库。它是用C++编写的,它的一位作者也有一本很好的书"Real Sound Synthesis for Interactive Applications“,可能也值得花点时间读一读。
https://stackoverflow.com/questions/4356862
复制相似问题