播放声音的 JSyn 函数
JSyn function to play sounds
我最近在做一个关于Java的项目,我使用SE 8。我制作了一架钢琴,它通过播放几个wav文件来播放音乐,f.e。我有 5 个风琴,钢琴的每个按钮都是所选乐器的一个音符。这些乐器是从顶部的按钮中选择的。
不过,我知道我也可以使用 JSyn 生成音乐,而不仅仅是 "calling" 要播放的 wavs。谁能帮助我如何开始,因为我还没有找到任何教程来做到这一点。我只需要找到一种方法来为我的键使用一个函数,然后输入不同的值(我假设)来改变每个键的声音。有什么想法吗?
如果您想使用 JSyn 播放合成声音,那么您可以在此处找到使用 MIDI 键盘的示例:
https://github.com/philburk/jsyn/blob/master/tests/com/jsyn/examples/UseMidiKeyboard.java
它展示了如何使用 VoiceAllocator 来管理多个语音。关键的一段代码是:
double frequency = convertPitchToFrequency(noteNumber);
double amplitude = velocity / (4 * 128.0);
TimeStamp timeStamp = synth.createTimeStamp();
allocator.noteOn(noteNumber, frequency, amplitude, timeStamp);
如果您想播放 WAV 文件中的样本,可以在此处找到示例:
https://github.com/philburk/jsyn/blob/master/tests/com/jsyn/examples/PlaySample.java
第 83 行说:
samplePlayer.rate.set(sample.getFrameRate());
这将以录制时的原始音高播放样本。
您可以调整速率,使其播放不同的音调。例如,按 2.0 缩放以播放八度音阶,或按 1.5 缩放以播放五度音阶:
samplePlayer.rate.set(1.5 * sample.getFrameRate());
如果放大或缩小太多,听起来会很奇怪。因此,您可能希望使用多个样本并选择最接近所需音高的样本。
我最近在做一个关于Java的项目,我使用SE 8。我制作了一架钢琴,它通过播放几个wav文件来播放音乐,f.e。我有 5 个风琴,钢琴的每个按钮都是所选乐器的一个音符。这些乐器是从顶部的按钮中选择的。
不过,我知道我也可以使用 JSyn 生成音乐,而不仅仅是 "calling" 要播放的 wavs。谁能帮助我如何开始,因为我还没有找到任何教程来做到这一点。我只需要找到一种方法来为我的键使用一个函数,然后输入不同的值(我假设)来改变每个键的声音。有什么想法吗?
如果您想使用 JSyn 播放合成声音,那么您可以在此处找到使用 MIDI 键盘的示例:
https://github.com/philburk/jsyn/blob/master/tests/com/jsyn/examples/UseMidiKeyboard.java
它展示了如何使用 VoiceAllocator 来管理多个语音。关键的一段代码是:
double frequency = convertPitchToFrequency(noteNumber);
double amplitude = velocity / (4 * 128.0);
TimeStamp timeStamp = synth.createTimeStamp();
allocator.noteOn(noteNumber, frequency, amplitude, timeStamp);
如果您想播放 WAV 文件中的样本,可以在此处找到示例:
https://github.com/philburk/jsyn/blob/master/tests/com/jsyn/examples/PlaySample.java
第 83 行说:
samplePlayer.rate.set(sample.getFrameRate());
这将以录制时的原始音高播放样本。
您可以调整速率,使其播放不同的音调。例如,按 2.0 缩放以播放八度音阶,或按 1.5 缩放以播放五度音阶:
samplePlayer.rate.set(1.5 * sample.getFrameRate());
如果放大或缩小太多,听起来会很奇怪。因此,您可能希望使用多个样本并选择最接近所需音高的样本。