在游戏时间更改样本的属性

时间:2016-05-09 08:36:33

标签: java audio jsyn

我试图找到一种在某些事件发生时在游戏时间内更改样本属性的方法,例如:提高音量或播放速度更快。

是否可以使用Jsyn?或者还有其他工具可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

根据JSyn文档,更具体地说是their presentation slide,有一个事件缓冲区可以支持这种功能......看一下暴露变量的鸟类示例(http://www.softsynth.com/jsyn/examples/index.php)噪音产生......

答案 1 :(得分:0)

JSyn有一个单元生成器,用于播放名为VariableRateDataReader的样本。您可以通过设置速率端口来更改播放样本的速率。它还有一个振幅端口。

http://www.softsynth.com/jsyn/docs/javadocs/com/jsyn/unitgen/VariableRateDataReader.html

以下是关键步骤:

// Load the sample.
FloatSample sample = SampleLoader.loadFloatSample(sampleFile);
// Create a player.
synth.add(samplePlayer = new VariableRateMonoReader());
// Set the rate to 70% of normal
samplePlayer.rate.set(sample.getFrameRate() * 0.7);
// Set the amplitude to 50% of normal
samplePlayer.amplitude.set(0.5);
// Queue the sample to the player.
samplePlayer.dataQueue.queue(sample);

以下是加载和播放示例的示例程序:

https://github.com/philburk/jsyn/blob/master/tests/com/jsyn/examples/PlaySample.java