滚球的声音

时间:2009-08-24 22:56:47

标签: c sound-synthesis

我正在寻找最真实的播放滚球声的方法。目前我正在使用Wav样本,只要球正在移动,我就会一遍又一遍地玩 - 这感觉不对。

我一直在考虑完全合成声音,我对此几乎一无所知(几乎没有),我会感激任何有关特定材料制成的球声合成的教程/研究材料/样本在另一种材料制成的表面上。如果这个想法完全错误,请提出另一种方法。

谢谢!

6 个答案:

答案 0 :(得分:8)

我猜你会通过对声音进行动态频率调整来获得最大的收益,这使得播放频率与球的速度成正比。我不知道你使用什么类型的声音库,但大多数会支持这种类型的变体。

例如,在FMOD中,您可以使用Channel :: setFrequency方法。理想情况下,您可以根据WAV的原始采样频率(Fo),球的当前速度(Vc)以及默认WAV右侧(Vi)的球的“理想”速度来计算所需的播放频率。通常像:

F = Fo *(Vc / Vi)

随着球越来越远离“理想”速度,这将趋于崩溃。您可能希望有几种不同的WAV适用于您在特定阈值速度下切换到的不同速度范围。在每个WAV的支架中,您可以进行相同类型的频率调整。

另一个注意事项:这可能不值得每一帧都做。我猜这样做每秒超过20次是浪费时间。

ADDENDUM:像这样的播放频率缩放也可用于模拟多普勒效应。一旦调整了播放频率,就可以根据球的速度相对于“听众”(相机)执行另一个频率刻度。

答案 1 :(得分:6)

你是否试过向前播放声音,然后向后播放,然后循环播放?我以图形方式使用这个技巧来创建重复模式。我对声音知之甚少,但可能有用吗?

答案 2 :(得分:5)

一种方法可能是分析滚球的声音,并将其分解为其分量波形。然后你就可以用合成波生成你自己的wav文件了 你应该可以在声音样本上使用FFT来做到这一点。

一个缺点是声音可能会合成声音 - 您必须添加噪音等,以使其听起来更逼真。让它听起来足够真实可能是最困难的部分。

答案 3 :(得分:3)

我觉得你不需要麻烦来合成它。听起来很难令人信服。

根据场景的不同,您可以向前/向后循环声音并使用低通滤波器模拟多普勒效应和/或改变它的音高。

顺便说一下,freesoung.org是免费样品的好地方。它们不是专业记录的,但却是操纵的良好起点。另一方面,sound ideas有一些很好的样本cds(它们实际上是行业标准),如果你能以便宜的价格找到它们。你只需要搜索哪一个有滚球声。

答案 4 :(得分:3)

我非常喜欢这篇SIGGRAPH论文中描述的方法:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.pdf

它描述了合成摇滚的声音(不,真的:)。这个想法是使用模态合成(即卷积脉冲响应),结果非常有说服力。

以下是与论文相关的视频演示的链接:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.mpeg

这里是JASS库的链接(由其中一位作者撰写),用于为视频创建声音:

http://www.cs.ubc.ca/~kvdoel/jass/jass.html

我不确定你是否可以让它在智能手机上运行,​​但是通过一个足够有效的卷积例程/近似,你可以做一些有趣的事情......

答案 5 :(得分:2)

我的问题是'为什么?' - 你觉得这有什么好处,还是只是为了好玩?你的问题意味着你对你正在使用的wav不满意,但我坚信你自己的合成听起来会更差。

如果您的wav样本听起来不正确,我建议您尝试寻找其他样本。合成声音并不容易,并且永远不会像您的样本那样逼真。

实时综合可能需要更多资源来进行处理和计算。您最终可能会将合成声音预呈现为wav文件并执行播放。

如果你想模拟不同材质的声音,那么你可以使用一些DSP,甚至是简单的技巧,比如减慢或加速wav播放。最简单的方法是在另一个应用程序中预先渲染这些文件,并为每次使用存储一份文件副本。