滚动骰子的程序性音频

时间:2012-02-04 22:24:00

标签: java android audio procedural-music

我正在寻找关于如何在我的游戏中围绕一对D6骰子随机化音频的建议。我希望每一骰子听起来都不同但是合情合理。而且我不想制作一堆预先录制的骰子卷,我想要更多变化。请注意,我不需要将音频与动画同步(我正在使用的动画非常简单和抽象)。

我的假设是我需要一些基本的音频片段来说明单个模具撞击表面一次的声音。 (有关生成这些的建议吗?或者最好是捕获它们?)然后我需要一些方法来改变和组合基本声音的变化来创建一个独特的滚动声音....或者我太无知了解如何复杂,我应该尝试不同的方法吗?

我正在使用Java开发Android版,但有关如何合理地组合或以程序方式生成任何语言的音频的教程或说明将不胜感激。我不需要实时支持,因为我认为我可以提前生成下一个音频的音频并将其缓存直到骰子实际滚动。

3 个答案:

答案 0 :(得分:2)

骰子可以产生两种类型的声音 - 一种是在击中环境时;一次击中另一个骰子。读取骰子碰撞声的光谱仪可以给出泛音的比率。它很容易在像Pure Data这样的软件中进行原型设计。我们的想法是,通过略微改变基频,您应该有更多程序性的碰撞声。您可以使用随机数来进行变化并预测碰撞。它可能不是完美的声音,但它可能是一个开始。

这可能很模糊,但我希望它仍有帮助:D。

答案 1 :(得分:0)

我的解决方案是使用免费录音软件一次捕捉一个模具的声音。合适的软件可以将这些文件切割成包含每个打击乐命中和剩余音频的小样本。只需几个记录的骰子就会给你几十个“点击”样本。

然后,使用Java,加载对每个样本的引用,并设计一个算法,该算法将以半随机序列播放它们并进行适当的时序修改。然后,您可以随时获得各种各样的音频,而无需在播放前将音频混合到单个流中。

答案 2 :(得分:0)

您可以从综合工具包(STK)查看"Shaker" class的过程代码。 STK是一个C ++库,但实际创建音频样本的过程并不难实现。默认情况下提供了许多类型的振动器。我希望您可以参考参数化并根据需要进行修改。