ADSRエンベロープを用いて、サンプルのデュレーション(再生時間)とアンプ(音量)を編集することもできます。しかしながら、シンセのADSRエンベロープとは少しだけ異なったように作用します。サンプルに使用するエンベロープは、サンプルのアンプとデュレーションを減らすことしかできません。決して増やすことはできないのです。サンプルは、それが再生され終わったときか、エンベロープが完了したときのいずれかで停止します。どちらが先でも停止します。非常に長いrelease:
を使ったとしても、サンプルのデュレーションは延長されません。
では、我々にはすっかりお馴染みのフレーズ、アーメン・ブレイクに戻りましょう:
sample :loop_amen
オプションが設定されていない場合、全サンプルがフル・アンプ(最大音量)で聞こえます。もし1秒間のフェード・インを使いたい場合、attack:
パラメータを使います(フェード・インとは徐々に音が大きくなることです)。
sample :loop_amen, attack: 1
もっと短いフェード・インの場合は、attack:
の値を小さくします。
sample :loop_amen, attack: 0.3
ADSR エンベロープの特徴が標準的なシンセ・エンベロープと異なる点は、サステイン(持続時間)の値です。標準的なシンセのエンベロープでは、もし手動で変更しなければ、0に設定されています。ですが、サンプルでは、サステインの値は通常、魔法のように全自動にセットされます。サステインの時間は、サンプルの残りを演奏するように調整されます。デフォルトの値を渡さないときに、サンプルがフルで流れるのはこのためです。アタック、ディケイ、サステイン、リリース(この4つの頭文字がADSR)の値が全て0のときは、何の音も聞こえません。Sonic Piはサンプルの長さがどれくらいなのか計算し、アタック、ディケイ、リリース・タイムを差し引いて、あなたのサステイン・タイムの結果を使用します。もし、アタック、ディケイ、リリースの値がサンプルのデュレーションより長く追加された場合、サステインは0にセットされます。
これまでのことを探索するために、アーメン・ブレイクをさらに詳細に見てみましょう。アーメン・ブレイクのサンプルがどれくらいの長さなのか、Sonic Piに尋ねてみてはどうでしょう:
print sample_duration :loop_amen
1秒間のサンプルの長さは1.753310657596372
と答えるでしょう。ここでは、便宜的に1.75
としますリリース・タイムを0.75
にすると、驚くべきことが起こります。
sample :loop_amen, release: 0.75
サンプルの最初の1秒をフル・アンプで再生し、最後の0.75秒はフェード・アウトします。これがオート・サステインの動きです。標準では、release:
はいつもサンプルの最後から動作します。もしサンプルの長さが10.75秒なら、最初の10秒はフル・アンプで再生し、最後の0.75秒はフェード・アウトします。
通常、release:
はサンプルの最後でフェード・アウトするということを覚えておいてください。
サンプルのデュレーションの間にフェード・アウトとインを行うにはattack:
とrelease:
の両方を使うことができます。オート・サステインの仕組みと一緒に、使用できます。
sample :loop_amen, attack: 0.75, release: 0.75
サンプルのアーメン・ブレイク全体のデュレーションは1.75秒なので、アタックとリリースの時間が1.5秒まで追加されると、サステインは自動的に0.25秒にセットされます。これで簡単にサンプルをフェード・イン、アウトすることができます。
手動でsustain:
を0などにセットして、通常のADSRシンセの挙動に簡単に戻すこともできます。
sample :loop_amen, sustain: 0, release: 0.75
いま、サンプルはトータルで0.75秒間だけ再生されました。attack:
とdecay:
のデフォルト値が0ですので、サンプルはフル・アンプ(最大音量)に直接変わり、0秒間サステイン(持続)し、リリースの0.75秒間で0アンプに戻ります。
この仕様を、長いサウンドのサンプルを短く、より打楽器的にするために、効果的に使うことができます。:drum_cymbal_open
:
sample :drum_cymbal_open
上のサンプルでは一定時間シンバルの音が鳴っているのが聞こえます。ですが、もっとパーカッシブ(打楽器的)にしてみましょう。
sample :drum_cymbal_open, attack: 0.01, sustain: 0, release: 0.1
サステイン(持続時間)を増やすことで、シンバルを叩いた後の減衰の効果も出すことができます:
sample :drum_cymbal_open, attack: 0.01, sustain: 0.3, release: 0.1
今すぐ、サンプルを楽しくさせるエンベロープをいじってみましょう。面白い結果を得るために数値を思いきり変更してみましょう。