音频采样频率间距

时间:2015-03-18 17:58:44

标签: c++ audio frequency pitch

我试图找出如何改变样本块的音高。 到目前为止,我一直在使用smbPitchShift代码,但有人告诉我,音调转换可以通过简单的频率转换来完成。

现在说我有一块2000个样本以44100hz的频率运行。 我如何设法将音高调高2个音程(24个半音)? 这家伙告诉它只是转换1 /频率,我真的不明白。

它是一个试图用C ++开发的VST插件。

感谢。

1 个答案:

答案 0 :(得分:0)

这并不像听起来那么简单......

如果你不需要保持共振峰的一种方式是时间延长4倍你的样本,最后重新采样(插值)4,这一步音调移动你的音频。

要拉伸你通常需要一些音高跟踪算法,在时域中一些已知的代码是PSOLA,WSOLA,TDHS,SOLA,VSOLA ......

要在频域中拉伸,您可以使用相位声码器。

记住没有共振峰会产生恶魔/花栗鼠效果。

相关问题