# マルチ・ライブループ

次のライブループを考えていきましょう。

    live_loop :foo do
      play 50
      sleep 1
    end

なぜ`:foo`という名前をつける必要があるか疑問を持つかもしれません。この名前は、このライブループが他のすべてのライブループと異なっていることを示すために重要です。

同じ名前で実行中の2つのライブループが存在することはできません。

これは、複数同時にライブループを実行したい場合、それぞれに異なる名前を付ける必要があることを意味します。

    live_loop :foo do
      use_synth :prophet
      play :c1, release: 8, cutoff: rrand(70, 130)
      sleep 8
    end
    live_loop :bar do
      sample :bd_haus
      sleep 0.5
    end

各ライブループを個別に変更し更新できます。そしてすべてちゃんと動作します。

## ライブループの同期

既に気づいているかもしれませんが、ライブループは、以前に見てきたスレッドのcueのメカニズムを使用して自動的に動作します。ライブループがループするたびに、それが新しい名前を持つライブループの`cue`を生成します。これにより、`cue`をきっかけに何も停止せずにサウンドのループを同期させることができます。

次のような同期されていないコードを考えてみましょう。

    live_loop :foo do
      play :e4, release: 0.5
      sleep 0.4
    end
    live_loop :bar do
      sample :bd_haus
      sleep 1
    end

それを停止することなくタイミングと同期を修正することができるかを見てみましょう。まずは、`foo`ループ内の`sleep`の引数を0.5に変えてみましょう。

    live_loop :foo do
      play :e4, release: 0.5
      sleep 0.5
    end
    live_loop :bar do
      sample :bd_haus
      sleep 1
    end

まだ終わりではないですね。あなたはビートがまったく合っていないことに気付くでしょう。これはループがずれているからです。他と同期するように、それを修正していきましょう。

    live_loop :foo do
      play :e4, release: 0.5
      sleep 0.5
    end
    live_loop :bar do
      sync :foo
      sample :bd_haus
      sleep 1
    end

おおー、すべてを停止することなく完璧に同期しましたね。

さあ、ライブループを使ってライブコーディングを始めましょう！