对音频信号执行哪些基本操作以创建有趣的声音?

信息处理 声音的 音乐 调制
2022-01-05 10:17:28

我不知道这个问题是否有意义,因为我对 dsp 很陌生。

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

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

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

或者说FL Studio拥有全套插件所能做的所有效果和花哨的东西,是不是可以分解成以上4个操作的一个系列和组合呢?或者还有更多?现代的带有插件的 DAW 理论上可以以这种方式分解成任何类别吗?以上 4 个类别本身是否有意义?

一点背景知识:本质上,我正在尝试制作一个非常基本(但非常灵活)的音频合成器/编辑器,作为一个学习编程和音频 dsp 的项目。使用 java,我从模仿基本的现实世界合成器类开始,调用振荡器和 LFO 之类的东西,但每次我学习新东西时,我发现自己必须重写所有内容以适应新概念到程序中。

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

谢谢!

编辑* * *

感谢您提供有用的评论和答案。我意识到我可能一直低估了东西的 dsp 方面,我不能只为一个简单的合成器创建一个基本的模板和结构,然后就扩展它/构建它。当我学习新东西和“正确”的做事方式时,我可能不得不一次又一次地反复重建……这需要更长的时间,但也许我会学到更多?也很抱歉,我似乎还没有足够的代表来支持任何人......我会尽快。

编辑*编辑***

我应该补充一点,谷歌搜索揭示了我认为相关且有趣的“合成类型”的基本指南。

1个回答

AM/FM 类别对于效果来说有点奇怪——的确,你可以通过调制输入信号的幅度来获得一些有趣的效果;但是对于您甚至没有准确频率表示的复杂输入信号,“频率调制”意味着什么?你可以说每个效果都是幅度调制,由信号,但这不会帮助你实现它!out(t)in(t)

音乐制作软件提供的所有音频效果的核心都没有神奇的单一用途引擎。但是,如果您查看来自 DSP 开发人员的大型音频效果套件的源代码,就会发现这里有一些“构建块”,它们将被分解到它们自己的类中,并且由许多不同的效果共享。我并不是说这构成了对效果进行分类的良好基础;但从实现的角度来看,这些块是必不可少的:

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

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

  • 类似合成器的滤波器或哇音:一个或两个双二阶
  • 自动哇音:信封跟随器 + 信封 + 双二阶
  • 镶边/移相器:LFO + 延迟线
  • 合唱:LFO + 延迟线
  • 算法混响:延迟线(并行和串行梳状滤波器阵列)
  • 卷积混响:卷积
  • Spatializer:卷积(带有 HRTF 脉冲响应)
  • 吉他放大器模拟:卷积、波形整形器
  • 失真,模糊:增益 + 波形整形器
  • Bitcrusher(量化器):waveshapper的一个特例
  • 带正弦载波的环形调制器:振荡器
  • Noise Gate 和其他动态效果:包络跟随器
  • 磁带模拟:卷积、波形整形器、包络跟随器(用于动态处理)
  • EQ:双二阶
  • 颤音:低频振荡器
  • Leslie 仿真:卷积 + LFO
  • 声码器:双二阶 + 包络跟随器

虽然其中一些效果只是修补不同块的问题(镶边确实是调制延迟线的 LFO),但其他一些效果需要在各部分之间进行更复杂的粘合,这足够具体,不会被考虑到构建块中它自己的。

总的来说,这是一组有趣的效果,涵盖了音乐制作的很多领域,但并不详尽,而且确实有一些效果不适合这个框架......一些例子:*脏采样率降低器(在一个bitcrusher):是的,它是一个狄拉克梳的乘法,然后是一个矩形窗口的卷积......但它更容易写成在N个后续样本上复制一个样本的值而不是修补幅度调制和卷积!* 音高改变效果(音高变换、自动调谐)不太适合这个框架。他们需要对要执行的音频信号进行更复杂的表示(频域方法的相位声码器;时域方法的音高检测和音高标记)。

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