# Programação ao vivo

Um dos aspectos mais excitantes de Sonic Pi, é a possibilidade de modificar a programação “ao vivo” para fazer música, assim como você toca uma guitarra. Isso significa, que com alguma prática você pode levar o Sonic Pi ao palco e apresentar-se.

## Liberte sua mente

Antes de nós entrarmos em detalhes reais de como o Sonic Pi funciona no resto desse tutorial, eu gostaria de te dar uma experiência de como é programar ao vivo. Não se preocupe se você não entender muito (ou nada) do que verá. Só aperte os cintos e curta…

## Repetição ao vivo

Vamos começar, copie o código a seguir em algum buffer vazio:

    live_loop :flibble do
      sample :bd_haus, rate: 1
      sleep 0.5
    end

Agora pressiona o botão `Rodar` e você ouvirá uma rápida batida de bateria tocando. Se a qualquer momento você quiser parar o som, basta pressionar o botão `Parar`. Mas calma, não pressione o botão ainda… Ao invés disso, siga os passos a segui:

1. Tenha certeza de que o bumbo continua rodando
2. Altere o valor `dormir` para `0.5` para algo acima de `1`.
3. Pressione o botão `Rodar` novamente
4. Note como a velocidade da batida foi alterada.
5. Finalmente, lembre deste momento, essa é a primeira vez que você programou ao vivo com Sonic Pi e provavelmente não será a última vez…

Ok, isso foi bem simples. Vamos adicionar alguma outra coisa na mistura. Sobre `sample :bd_haus` adicione a linha `sample: ambi_choir, rate: 0,3`. Seu código deve estar assim agora:

    live_loop :flibble do
      sample :ambi_choir, rate: 0.3
      sample :bd_haus, rate: 1
      sleep 1
    end

Agora brinque um pouco. Altere os valores - o que acontece quando você usa valores maiores, ou valores menores ou negativos? Veja o que acontece quando você altera o valor `rate:` para o sample `:ambi_choir` apenas um pouco (digamos, para `0.29`). O que acontece se escolher um valor bem pequeno para `sleep`? Veja se você pode fazer isso ficar tão rápido que seu computador irá parar com um erro porque ele não consegue acompanhar (se isso acontecer, apenas selecione um tempo maior pra `sleep` e pressione `Rodar` novamente).

Tente comentar uma das linhas de `sample` adicionando `#` no começo:

    live_loop :flibble do
      sample :ambi_choir, rate: 0.3
    #  sample :bd_haus, rate: 1
      sleep 1
    end

Note como ele diz ao computador para ignorar essa linha, você não consegue ouvi-lá. Isto é chamado comentário. Em Sonic Pi você pode usar comentários para remover e adicionar coisas na mixagem.

Finalmente, vou deixar você com algo divertido para brincar. Pegue o código abaixo, e copie ele num buffer disponível. Agora, não tente entender isto além de perceber que nele há dois loops - então são duas coisas rodando ao mesmo tempo. Agora, faça aquilo que você faz de melhor - experimente e comece a brincar. Aqui vão algumas sugestões:

- Tente alterar os valores azuis de `rate:` para ouvir a amostra de som mudar.
- Tente mudar os tempos `sleep` e escutar que ambos loops podem rodar em taxas diferentes.
- Tente descomentar a linha de exemplo (remova o `#`) e aprecie o som da guitarra tocada ao contrário.
- Tente trocar qualquer valor do `mix:` azul para números entre `0` (não na mixagem) e `1` (totalmente na mixagem).

Lembre-se de apertar `Run` e você irá ouvir a mudança na próxima vez que o loop rodar. Se você acabar num aperto, não se preocupe - aperte `Stop`, delete o código no buffer e cole uma cópia nova em folha e você estará pronto para tocar novamente. Fazer erros é a forma mais rápida de aprender…

    live_loop :guit do
      with_fx :echo, mix: 0.3, phase: 0.25 do
        sample :guit_em9, rate: 0.5
      end
    #  sample :guit_em9, rate: -0.5
      sleep 8
    end
    live_loop :boom do
      with_fx :reverb, room: 1 do
        sample :bd_boom, amp: 10, rate: 1
      end
      sleep 8
    end

Agora,continue tocando e experimentando até que sua curiosidade sobre como tudo isso realmente surja e você comece a se perguntar oque mais você pode fazer com isso. Agora você está pronto para o resto do tutorial.

Então oque você está esperando…