所以,我有一个绝妙的主意来写一些东西来解析 .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
在运行时尝试这个而不是预处理每个样本然后使用它是否现实?
我已经看到高级库仅涵盖这一点。而且我不需要我的项目听起来像这样,但是有没有一个不错的选择,或者我只是在这里做错了吗?我真的很感激一些音频方面的见解,因为我对音频的工作原理并不十分了解。
欢迎任何建议!