# エフェクトの追加

このセクションでは、エフェクト「リバーブとエコー」の組み合わせを見ていきます。それらをどのようにチェイン接続するか、どのように制御するのか、これらの使用方法について説明します。

Sonic Piのエフェクトシステムは、ブロックを使用します。セクション5.1を読んでいなければ、戻って目を通してください。

## リバーブ

リバーブを使用する場合、次のように特殊なコード`with_fx :reverb`をブロックに書きます。

    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

早速コードを実行してリバーブを聞いてみましょう。いいでしょ！ 音全体が残響効果で素晴らしくなります。

さあ、次はブロックの外にコードを書いて何が起こるか見てみましょう。

    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end
    sleep 1
    play 55

どうして最後の`play 55`にリバーブが適用されないのでしょうか。それはブロックの外部に書かれているため、リバーブエフェクトは適応されないのです。

do/endブロックの手前で音を生成する場合も同様にリバーブは適用されません。

    play 55
    sleep 1
    with_fx :reverb do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end
    sleep 1
    play 55

## Echo：エコー

選択できるエフェクトは他にもたくさんあります。エコーはどうでしょうか?

    with_fx :echo do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

Sonic Piのエフェクトブロックの強力な側面の1つは、既に`play`と`sample`で見てきたオプションと同様のオプションが渡されることです。たとえば、エコーの楽しいオプションは、拍単位で遅れの長さを示す`phase`があります。下記のコードで、エコーの遅れをゆっくりにしてみましょう。

    with_fx :echo, phase: 0.5 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

エコーの遅れを早くしてみましょう。

    with_fx :echo, phase: 0.125 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

エコーが8拍の時間でフェードアウトする様に、`decay:`を設定してみましょう。

    with_fx :echo, phase: 0.5, decay: 8 do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

## エフェクトの入れ子

エフェクトブロックで最も強力な側面の1つは、入れ子ができるということです。これはとても簡単にエフェクト同士を連結することができます。たとえば、あるコードにエコーとリバーブを掛けたい場合どうしますか？ その答えは単純です。1つのエフェクトの内側にもう一方を配置するだけです。

    with_fx :reverb do
      with_fx :echo, phase: 0.5, decay: 8 do
        play 50
        sleep 0.5
        sample :elec_blup
        sleep 0.5
        play 62
      end
    end

オーディオの流れについて内側から外側へ追ってみましょう。`play 50`を含む`block`のdo/endブロック内のコード全ては、最初にエコーエフェクトに送られ、その音がリバーブエフェクトへと順に送られていきます。

クレイジーなサウンドを得るために非常に深く入れ子を使用することができます。しかし、一度にたくさんのエフェクトを入れ子で実行すると多くのリソースを必要とするため、注意してください。そのため、特にRaspberry Piのような低電力供給のプラットフォームではエフェクトの使用を節約することも必要です。

## エフェクターの発見

Sonic Piは、あなたが演奏するためにたくさんのエフェクトを搭載しています。どういったエフェクトが使えるのかを見つけ出すためには、ヘルプシステム画面の下にある`エフェクト`ボタンをクリックし、利用可能なリストを見てください。ここに私のお気に入りを記載しておきます。

- wobble,
- reverb,
- echo,
- distortion,
- slicer

さあ、エフェクトを追加して驚きの新しいサウンドの虜となってください！