对音频信号执行以产生有趣声音的基本操作类别是什么?


10

我不知道这个问题是否有意义,因为我是dsp的新手。

在我对音频dsp的有限尝试中,我遇到了:

  1. 调频
  2. 调幅
  3. 添加剂合成
  4. 减法合成

我的问题是:这些是信号处理(特别是音频)的主要基本类别吗?

换句话说,具有全套插件的FL Studio可以完成的所有效果和奇特的事情可以分解为上述4种操作的一系列和组合吗?还是还有一大堆?从理论上讲,带插件的现代DAW可以按这种方式分为任何类别吗?以上四个类别本身是否有意义?

背景知识:基本上,我正在尝试制作一个非常基本(但非常灵活)的音频合成器/编辑器,作为一个学习编程和音频dsp的项目。使用Java时,我首先模仿了现实世界中类似合成器的基本类,调用了Oscillator和LFO之类的东西,但是每次学习新东西时,我发现自己不得不重写所有内容以使新概念适合该程序。

我现在尝试重新开始,并提出程序的基本对象和结构。为了做到这一点,我需要知道如何允许这些对象进行交互等。

谢谢!

编辑* * *

感谢您提供有用的评论和答案。我意识到我可能一直低估了东西的dsp方面,我将无法仅为简单的合成器创建基本的模板和结构,然后对其进行扩展/构建。当我学习新东西和做事的“正确”方法时,我可能不得不一次又一次地进行重建……这将花费更长的时间,但是也许我会学到更多?同样抱歉,我似乎还没有足够的代表来投票支持任何人……我会尽快。

编辑*编辑***

我应该补充一点,在谷歌搜索中发现了有关“合成类型”的基本指南,我发现它是相关且有趣的。


您是否需要有关合成技术的理论背景,还是想要更多类似的东西(即在实践中使用的常用方法)?dsp.stackexchange.com/questions/192/…–
datageist

1
如果我将所有可能的声音处理归纳为尽可能少的类别,则将其命名为线性和非线性变换。但是这些措施过于笼统和广泛,无法实施。
阿列克谢·弗伦兹

@datageist-我想我都需要!但这是一个非常有用的链接,谢谢。
kiman 2012年

@Alex这很笼统,但这是一个概念上的出发点,至少我现在知道我在吠叫错误的树。
kiman 2012年

获得Will Pirkle的书,《用C ++设计软件合成器插件:针对RackAFX,VST3和音频单元》。实际上,您将成为一个合成器并沿途学习,而不是尝试自己弄清一切。
panthyon,2015年

Answers:


9

ØüŤŤ一世ñŤ

音乐制作软件提供的所有音频效果的核心没有魔术专用引擎。但是,如果您看一下DSP开发人员提供的大量音频效果的源代码,则这里有一些“构建模块”,这些构建模块已被排除在自己的类中,并且被许多不同的效果共享。我并不暗示这构成了分类影响的良好基础; 但是从实现的角度来看,这些块是必不可少的:

  • 双二阶滤波器。
  • 小数延迟线。
  • 卷积引擎,用于对具有任意大小的脉冲响应的输入信号进行快速卷积。
  • Waveshaper(在时域中将非线性函数应用于输入信号)。
  • 合成器构建块:振荡器,LFO,ADSR包络。
  • 信号检测器:包络跟随器,f0提取器。

使用这些块,您可以构建:

  • 类似合成器的滤波器或哇哇声:一两个二阶方程
  • 自动哇音:信封追踪者+信封+ biquad
  • Flanger / Phaser:LFO +延迟线
  • 合唱:LFO +延迟线
  • 算法混响:延迟线(并行和串行梳状滤波器阵列)
  • 卷积混响:卷积
  • 空间化器:卷积(具有HRTF脉冲响应)
  • 吉他放大器模拟:卷积,波峰
  • 失真,模糊:增益+波形发生器
  • Bitcrusher(量化器):Wavesapper的特殊情况
  • 具有正弦载波的环形调制器:振荡器
  • 噪声门和其他动力学效果:包络跟随器
  • 磁带模拟:卷积,波形发生器,包络跟随器(用于动力学处理)
  • 情商:双足类
  • 颤音:LFO
  • Leslie仿真:卷积+ LFO
  • 声码器:双二阶+包络跟随器

尽管其中一些效果只是修补不同块的问题(镶边器确实是LFO调制延迟线),但其他一些效果则需要零件之间更复杂的胶合,即足够具体,以至于不能分解为构件它自己的。

总体而言,这是一组有趣的效果,将覆盖音乐制作的许多基础,但它并不详尽,确实有些效果不适合此框架...一些示例:*肮脏的采样率降低器(在一个bitcrusher):是的,它是一个狄拉克梳子的乘积,然后是一个矩形窗口的卷积...但是将其写为在一个N个以下样本上复制一个样本的值而不是对振幅调制进行修补的方法更容易和卷积!*音高改变效果(音高移位,自动调谐)与该框架不太吻合。他们需要对音频信号进行更复杂的表示(频域方法为相位声码器;时域方法为基音检测和基音标记)。

我建议您使用Pd,Reaktor,Plogue,SyntheEdit等“模块化样式”软件工具-并尝试从它们提供的基本构件中实现效果。


2
值得一提的是,FM综合中使用了频率调制。从单音调频调制的情况中很容易看出这一点,该调制会产生具有由第一类贝塞尔函数定义的傅里叶级数的信号。
布莱恩2012年

1
在合成器(例如Yamaha DX系列,基于OPL的硬件以及这些软件的软件仿真器)中实现的“ FM合成”是用词不当,因为实际上这是通过相位调制完成的。en.wikipedia.org/wiki/Phase_modulation
pichenettes 2012年

我看不到该Wikipedia条目的任何来源。无论如何,根据该条目,它说它们听起来“相似”,并且使用PM是因为FM更难以实现。考虑到FM是PM的特例,我不买那个。尽管如此,我在调频调制背后引用的产生与贝塞尔函数有关的谐波的理论仍然有效,并且很有用。
布莱恩

@布莱恩 参见“ FM”合成专利US4018121的权利要求1。sin(wt + I(t)sin w_m t)-它是相位调制。PM易于实现,因为1 /您不需要额外的累加器就可以将变化的瞬时频率集成到相位中-请参阅此处的几篇文章,人们尝试生成随时间变化的音调并被咬回2 /从频率到相位增量的转换涉及除法。使用PM可以以调制率重新计算相位增量;使用FM时,您将需要以采样率重新计算相位增量。
pichenettes 2012年

非常有用的答案,谢谢。我意识到我一直在专注于编程方面(我只是在学习),而对d​​sp方面的重视不够。这可能不是一个我只能从小做起并逐步建立的项目,但随着我的学习,我将不得不多次重建和重建这个项目。
基曼
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.