我试图找出如何改变样本块的音高。 到目前为止,我一直在使用smbPitchShift代码,但有人告诉我,音调转换可以通过简单的频率转换来完成。
现在说我有一块2000个样本以44100hz的频率运行。 我如何设法将音高调高2个音程(24个半音)? 这家伙告诉它只是转换1 /频率,我真的不明白。
它是一个试图用C ++开发的VST插件。
感谢。
答案 0 :(得分:0)
这并不像听起来那么简单......
如果你不需要保持共振峰的一种方式是时间延长4倍你的样本,最后重新采样(插值)4,这一步音调移动你的音频。
要拉伸你通常需要一些音高跟踪算法,在时域中一些已知的代码是PSOLA,WSOLA,TDHS,SOLA,VSOLA ......
要在频域中拉伸,您可以使用相位声码器。
记住没有共振峰会产生恶魔/花栗鼠效果。