运行时的采样率转换

时间:2017-01-12 23:08:09

标签: c# audio frequency distortion sample-rate

所以,我有一个很好的想法来写一些东西来解析.MOD文件。 (跟踪音乐)为了尝试将它们作为练习练习回到C#。

现在我一路回来实际播放它,但遇到了一个问题。我的引擎使用的音频缓冲区是半固定速率。 44100hz我相信。 这个特殊的模块文件,就像我认为所有.MOD文件一样,采样率为8287Hz(我相信atari / amiga年代的东西?)

故事很长,听起来不是很好。

然后我读了一下采样率转换。有些页面做了简单的比较。如果您没有任何余地,请使用最近邻居。所以我做了。这听起来像一匹垂死的马。喜欢它可怕的尖叫,不会推荐。 所以我尝试了下一个最好的事情。线性插值。我知道当我必须在我原来的8.3Khz文件中播放下一个最好的样本时,我必须填写所有样本直到那时,我在原始文件中插入我的最后一个样本。或者用0,否则我认为(这可能很糟糕,但有点除此之外)

所以现在我有了它,它模糊地类似真实的声音(盐粒),但它仍然听起来很可怕。我做错了什么,或者SRC是否需要更多的东西才能获得一些体面的东西?此外,我听不到最近邻和线性插值之间的任何真正差异,是否有原因?

原文:http://puu.sh/tkgWZ.wav

最近的:http://puu.sh/tkh0L.ogg

线性插值:http://puu.sh/tkgZ6.ogg

在运行时尝试这个是否现实,而不是预先处理每个样本然后再使用它?

我见过高级图书馆。而且我不需要我的项目听起来像那些,但是有一个不错的选择,或者我只是在这里做错了?我非常欣赏一些音频方面的见解,因为我并不知道音频如何正常工作。

欢迎任何建议!

0 个答案:

没有答案