VST2.4 SDK当音符结束而另一个音符开始时,乐器会发出声音

时间:2013-09-27 18:55:37

标签: c++ audio vst

我一直在用C ++工作我的VST乐器已经有一段时间了,当一个音符在另一个音符开始的地方结束时,我遇到了一个大声点击的问题。

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

我一直在尝试扫描输出缓冲区以找到陡峭的大声值,这些值会在很短的时间内发生,以便通过静音解除咔嗒声,如果它在那里工作了一段时间但是击中了endzone。

带有来自音序器的图像的文件在此处上传,以便您在Soundcloud click sound on sound cloud

上听到短mp3文件中的点击

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

1 个答案:

答案 0 :(得分:1)

在没有看到源头的情况下诊断这些类型的问题真的很难,即便如此,也没有解决VST质量问题的“银弹”。但是,我可以为您提供一些建议:

  • 使用wave编辑器查看退回的输出文件真实关闭。我的意思是,直到样本水平。 Ocenaudio是一个这样的免费软件编辑器,可以将波形显示为单个样本。使用它和一些日志记录应该能够准确地告诉您生成点击的位置。结合像MrsWatson这样的工具(免责声明:我写过MrsWatson),您可以获得有关插件在任何特定process()回调期间所执行操作的非常准确的数据。
  • 您将无法“过滤”点击次数,这样做只会减少他们的存在,但仍会导致一般的蹩脚声音。我建议试着找出问题的核心原因。
  • 完整性检查:确保初始化所有变量以获得默认值。通常情况下,未初始化的值可能会导致单个样本的值不正确,从而导致临时峰值(因此可以听到咔嗒声)。
  • 在最坏的情况下,您可以应用一些线性插值来“平滑”出样品之间存在很大差异的区域。但是,这只会减少令人讨厌的咔嗒声,但这可能会导致您的乐器整体音质不佳。