为了构建软件合成器,需要知道什么?


19

对于在软件开发方面具有一定经验,热爱合成器并且了解数字音频表示的[非常]基本知识的人来说,为DSP编写音乐合成器编程应遵循的第一步是什么?

Answers:


17

获得用于交互式应用程序的真实声音合成,并下载Synthesis Toolkit。对于大多数正在使用的数字合成方法,这将为您提供实用的介绍和高质量的源代码。然后选择最有趣的方法,然后开始修改相应的STK代码以执行所需的操作。 然后尝试从头开始构建类似的内容。

此外,就像hotpaw2建议的那样,JOS中的任何内容也是很好的入门资料。特别是,带音频应用的数字滤波器简介离散傅立叶变换的数学都从基础开始,并且没有太多的背景知识。

从数字滤波器/效果的角度来看,另一个不错的起点是检查Faust。您甚至不必学习它们的方框图信号处理语言,只需使用示例来转储VST,LADSPA等模板代码即可快速运行某些内容(然后可以对其进行修改)。

话虽如此,从声音渲染开始甚至更容易,这基本上是相同的事情,但无需担心实时操作或交互性。您只需将wav文件保存到磁盘。在尝试使新技术快速运行之前,这是一种尝试新技术的好方法。


完美的答案-它涵盖了非常均衡的问题。谢谢!
vemv 2011年

6

我会读一本关于DSP的入门书,以及一些有关计算机音乐的书(亚马逊和其他书店列出了几本)。斯坦福大学还提供了大量有关DSP和声音合成的课程资料。有关人类听觉系统和心理声学的书籍也可能会有所帮助。


5

首先,您需要确定要构建哪种类型的合成器-加法,FM,基于样本等。您还需要确定是否要模拟某种现有的模拟合成器,或者只是设计自己的模拟合成器。

其余的工作非常简单-您只需在软件中实现各种合成器构建块(例如,振荡器,滤波器,噪声发生器,包络整形器等),然后实现将它们“连接”在一起并控制其参数的方式。

请参阅Hal Chamberlin的书《微处理器的音乐应用》,该书很好地介绍了许多基础知识。


4

我很惊讶没有人提到SynthMaker。它非常易于使用,尽管很难进行低级(请确保使用开发人员模式),但是您可以从中学习有关Synthesizer架构以及通用DSP的很多知识。您实际上可以利用它构建的东西,实际上,我用它来构造几乎所有的插件。


作为软件开发人员,我一直不愿使用向导,但我相信DSP是一个世界,所以SynthMaker可以派上用场。此外,一对夫妇也有很好的经验:)
vemv 2011年

我本人将要提及SynthMaker。这是一个很棒的程序。
Matt M.

4

正如其他一些贡献者所提到的,必须有一个良好的DSP基础知识。这是一本很棒的书> http://www.dspguide.com/,作者请提供完整和免费的PDF下载。另一本提供各种合成技术的高级视图的通用音乐技术课程书是> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823。我还要重申以前的贡献者Synthmaker的建议,它是用于开发VST插件的非常方便的可视化开发环境。最后,如果您只是想尝试而不做深入研究,可以尝试使用Csound,这是专门为声音合成设计的编程语言。


2

我只是想补充一下,因为大多数答案都集中在DSP问题上。如果您不使用SynthMaker这样的模块设计系统,那么您将花费大量的开发时间来处理语音管理。如果您是从头开始编写VSTi乐器插件,则学习曲线要​​比效果插件要长得多。您将必须管理每个音符对象,如果您的DSP仅足够快以发出16个声音,对音高弯曲,滑音,调制等做出响应,则决定在有20个音符时会发生什么。建议您从Buzz或SynthMaker开始,直到最后碰壁时才滚动自己。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.