0

我已经在 C++ 中使用我的 VST 乐器一段时间了,当一个音符在另一个开始的地方结束时,我遇到了一个响亮的点击问题。

实际上,当音符结束时问题也存在,但我添加了一个“淡出”算法来消除该部分。但是,一旦另一个音符开始到另一个音符结束,我的淡出算法就没有空间了。

我一直在尝试扫描输出缓冲区以找到将在短时间内发生的陡峭的响亮值,以通过静音来消除该部分的咔嗒声,让它在那里工作了一段时间但达到了终点区。

带有来自音序器的图像的文件在此处上传,供您在 Soundcloud 上听到简短 mp3 文件中的点击声音 在声音云上点击声音

对这些事情有更多了解的人可以分享一些关于这个主题的信息,我知道点击过滤器是如何工作的,但我不知道如何在这样的 VST 仪器中实现它,显然不是。有什么好的方法来解决这个问题?

4

1 回答 1

1

如果不查看源头就很难诊断这些类型的问题,即使这样也没有解决 VST 质量问题的“灵丹妙药”。不过,我可以给你一些建议:

  • 使用波形编辑器查看反弹的输出文件。我的意思是,下降到样本水平。Ocenaudio就是这样一款免费软件编辑器,可以将波形显示为单个样本。使用它和一些日志记录应该能够准确地告诉你点击是在哪里生成的。结合诸如MrsWatson 之类的工具(免责声明:我写了 MrsWatson),您可以获得关于插件在任何特定process()回调期间所做的非常准确的数据。
  • 您将无法“过滤”掉点击,这样做只会减少它们的存在,但仍会导致声音通常很糟糕。我建议尝试找出问题的核心原因。
  • 健全性检查:确保将所有变量初始化为健全的默认值。很多时候,未初始化的值会导致单个样本的值不正确,从而导致暂时的尖峰(因此可以听到咔哒声)。
  • 在最坏的情况下,您可以应用一些线性插值来“平滑”样本之间差异很大的区域。但是,这只会减少讨厌的咔嗒声,但可能会以您的乐器整体音质不佳为代价。
于 2013-11-06T14:03:54.413 回答