# Несколько Живых Циклов

Рассмотрим следующий живой цикл:

    live_loop :foo do
      play 50
      sleep 1
    end

Вы, наверное, заинтересовались, почему он называется `:foo`. Это имя имеет значение, поскольку оно показывает, что этот живой цикл отличается от всех других живых циклов.

Не может быть двух живых циклов, выполняющихся под одним именем.

Это значит, что если мы хотим иметь несколько одновременно выполняющихся циклов, нам просто нужно дать им разные имена:

    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` событие с названием цикла. Следовательно, мы можем `sync` эти сигналы, чтобы гарантировать нашим циклам синхронизацию без необходимости что-либо останавливать.

Рассмотрим этот плохо синхронизированный код:

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

Давайте посмотрим, сможем ли мы исправить тайминг и синхронизировать его без остановки воспроизведения. Сначала исправим время сна в цикле `:foo` на что-то вроде `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

Ого, теперь всё прекрасно синхронизируется по времени и всё это без остановки.

А теперь вперёд! Кодируйте вживую с живыми петлями!