# Programare live

Una din chestiile cele mai tari legate de Sonic Pi este ca iti permite sa scrii si sa modifici codul in direct pentru a crea muzica, la fel ca atunci cand canti in direct la chitara. Asta inseamna ca dupa ce exersezi putin, poti lua Sonic Pi pe scena si sa interpretezi cu el.

## Elibereaza-ti mintea

Inainte de a trece la detaliile despre cum functioneaza Sonic Pi, as vrea sa experimentezi ce inseamna sa programezi live. Nu te speria daca nu intelegi prea multe din asta. Tine-te bine in scaun si bucura-te de muzica…

## O bucla live

Sa incepem. Copiaza codul de mai jos intr-un buffer gol:

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

Acum, apasa butonul ‘Executa’ si vei auzi un ritm de toba bass. Daca la un moment dat vrei sa opresti sunetul, apasa pe butonul ‘Stop’. Dar deocamdata nu-l apasa… Mai bine urmeaza pasii astia:

1. Asigura-te ca sunetul de toba bass inca se aude
2. Schimba valoarea ‘sleep’ din ‘0.5’ in ceva mai mare, cum ar fi ‘1’.
3. Apasa din nou pe ‘Executa’
4. Observi ca viteza s-a schimbat.
5. Tine minte momentul asta, e prima data cand ai programat live, dar probabil nu va fi ultima…

OK, a fost destul de simplu. Sa mai adaugam ceva. Deasupra liniei ‘sample :bd_haus’ adauga linia `sample :ambi_choir, rate: 0.3`. Codul ar trebui sa arate asa acum:

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

Acum poti sa te joci. Schimba valorile pentru ritm - ce se intampla cand folosesti valori mai mari sau mai mici, sau valori negative? Vezi ce se intampla cand schimbi ‘rate:’ pentru ‘:ambi_choir’ doar putin (sa zicem la 0.29). Ce se intampla daca alegi o valoare foarte mica pentru ‘sleep’? Vezi daca poti sa il faci sa se miste atat de repede incat calculatorul sa dea o eroare fiindca nu poate tine pasul (in cazul asta alege o valoare mai mare prentru ‘sleep si apasa din nou ‘Run’).

Incearca sa transformi in comentariu una dintre liniile ‘sample’ adaugand un ‘#’ la inceput:

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

Observi ca i-am spus calculatorului sa ignore acea linie, deci nu o vom auzi. Acesta se numeste comentariu. In Sonic Pi putem folosi comentariile pentru a adauga sau inlatura sunete.

La final, iti voi lasa ceva distractiv cu care sa te joci. Ia codul de mai jos si copiaza-l intr-un buffer gol. Deocamdata nu incerca sa intelegi prea mult, remarca doar ca sunt doua bucle - deci doua lucruri care se reiau in acelasi timp. Acum fa ceea ce faci cel mai bine - experimenteaza si joaca-te cu codul. Uite cateva sugestii:

- Incearca sa schimbi valorile afisate cu albastru pentru ‘rate:’ si vezi cum se schimba sunetul.
- Incearca sa schimbi valorile pentru ‘sleep:’ (pauza) si vei observa cum cele doua bucle se reiau cu frecvente diferite.
- Incearca sa inlaturi semnul pentru comentariu (‘#’) de la linia sample si delecteaza-te cu sunetul de chitara redat de la coada la cap.
- Incearca sa schimbi oricare dintre valorile pentru ‘mix:’ afisate cu albastru cu numere intre ‘0’ (nu intra in mix) si ‘1’ (intra complet in mix).

Tine minte sa apesi ‘Executa” si vei auzi schimbarea data viitoare cand se reia bucla. Daca ramai blocat, nu te panica - apasa ‘Opreste’, sterge codul din buffer, adu o noua copie si esti gata sa improvizezi din nou. Facand greseli vei invata cel mai rapid…

    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

Continua sa te joci si sa experimentezi pana cand vei deveni curios cum merge de fapt chestia asta si te vei intreba ce altceva mai poti face cu ea. Acum esti pregatit sa citesti restul tutorialului.

Deci, ce mai astepti?