进阶话题1

采样切片

让我们回头再看看采样。下面这个视频理解一下循环采样回放的作用。

:loop_amen采样的回放由以下代码表示:

sample :loop_amen

现在我们来做一个一直打拍子的live_loop。你还记得那个改变采样音高来适应所需节拍长度的beat_stretch指令吗?我们在“声音微调”章节简单介绍过。接下来我们要用它把loop_amen采样拉长到四拍并循环:

use_bpm 145

live_loop :drumloop do
  sample :loop_amen, beat_stretch: 4
  sleep 4
end

接下来我们来看看怎么让部分Amen循环按照不同顺序演奏。用采样指令你可以用开始和结束参数来设定不同的起始点和结束点。两个参数都可以输入0到1之间的数值来设定采样回放的开始和结束点。例如:0是采样的起始,0.5是中点,1是结束点。我们来实际操作看看:

use_bpm 145

live_loop :drumloop do
  sample :loop_amen, beat_stretch: 4, start: 0, finish: 0.125
  sleep 0.5
  sample :loop_amen, beat_stretch: 4, start: 0, finish: 0.125
  sleep 0.5
  sample :loop_amen, beat_stretch: 4, start: 0.5, finish: 0.75
  sleep 1
  sample :loop_amen, beat_stretch: 4, start: 0.25, finish: 0.5
  sleep 1
  sample :loop_amen, beat_stretch: 4, start: 0.75, finish: 0.875
  sleep 0.5
  sample :loop_amen, beat_stretch: 4, start: 0.25, finish: 0.375
  sleep 0.5
end

下面的视频可以看出loop_amen采样在每次live_loop中播放的部分。

把采样用完全不同的顺序播放是不是特别有意思?试试修改采样选项,例如添加一个-1的选项速率,让loop_amen倒放。

一旦你开始试验采样选项(比如速率、声像、幅度、击打、释放、开始和结束),一个采样能被塑造成任何样子。下面的例子在两个采样里用了随机数值演奏出了独特的效果:

use_bpm 180

with_fx :reverb, mix: 0.2, room: 1 do
  live_loop :grain1 do
    s = rrand(0, 0.7)
    t = rrand(0.03, 0.3)
    e = s + t
    a = rrand(0.5, 1.0)
    sample :guit_e_fifths, rate: -1.5, start: s, finish: e, attack: t/6.0, sustain: t/2.0, pan: rrand(-0.5, 0.5)
    sleep t
  end

  live_loop :grain2 do
    s = rrand(0, 0.7)
    t = rrand(0.03, 0.2)
    e = s + t
    a = rrand(0.5, 1.0)
    sample :guit_em9, rate: 1.5, start: s, finish: e, attack: t/6.0, sustain: t/2.0, pan: rrand(-0.5, 0.5)
    sleep t
  end
end

这个技术能被广泛运用在颗粒采样器和合成器中。.