往程序里加音效,导入相应的声音素材文件不就分分钟搞定了吗?
其实除了导入,还可以就现有采样简单调整参数,修改素材的音高还有音色,乃至变化风格。
感觉像是用了完全不同的声音。
举个栗子,如果你只有钢琴键盘上一个音的采样,你可以通过修改sample rate得到键盘上所有的音,而无需加载全部88个采样。而一般的声音编辑库,都有sample rate。
简单来说,sample rate 修改了声音文件的播放速度。
播放速度越慢,音调越低,播放时间越长。
播放速度越快,音调越高,播放时间变短。
一般我修改sample rate 都是为了修改音高,播放时间其实可以忽略不计。
以sonic pi内提供的示例来说
加载一个打击乐采样
sample :loop_amen, rate: 1 #正常播放速度
sample :loop_amen, rate: 0.5 #慢速播放,复古风格
sample :loop_amen, rate: 2 #快速播放,像是桑巴鼓点
效果怎样只有听了才知道。
Processing sound library 里也可以修改sample rate, 和不同输入数据连起来玩法颇多。
还是看一段官方例子
用光标位置控制sample rate
SoundFile song;
...
void draw() {
float speed = map(mouseY, 0, height, 0, 2);
song.rate(speed); <-----在这里改播放速度
}
但美中不足的是,Processing sound library 不支持多音轨,既一次只能播放一个文件,因此没法面对对象播放采样。
下面是我一年前做的简易鸽哨模拟
这里用到了真实的鸽哨采样,用sample rate修改音高,而定义音高位置的是鸟群此时所处的位置。
高空中音调高,低空中音调低,效果基本说的过去。
采样起始位置仔细听还能听出来,因为采样在开始和结尾都没有声音。
如果你想用从某首歌或视频截取出来的声音做相同的编辑,可能在你修改sample rate后发现衔接并不好。
有时甚至会出现类似“咔哒”的意外声响。
那是因为声音文件内的数据从某个数值一下降到了0之后回升(因为每次都是重复播放),从图像上看就是出了一个坑。
为了填上这个坑,教程上说可以加混响,但目前我还没试过。