我正在尝试找到一种方法来在播放期间在某些事件发生时更改样本的属性,例如提高音量或加快播放速度。
使用Jsyn可以吗?还是有其他工具可以做到这一点?
根据 JSyn 文档,更具体地说是他们的演示幻灯片,有一个事件缓冲区可能支持这种功能......看看鸟类示例(http://www.softsynth.com/jsyn/examples/ index.php),它暴露了可变噪声生成......
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