# Live Coderen

Een van de meest opwindende aspecten van Sonic Pi is, dat het je in staat stelt, code te schrijven en de code, ook live te wijzigen om muziek te maken, net zoals je live gitaar zou spelen. Dit betekent dat je, na wat oefening, met Sonic Pi het podium op kan en een kan optreden geven.

## Maak je hoofd leeg

Voor we in detail gaan over hoe Sonic Pi werkt, verderop in deze handleiding, wil ik je even de ervaring meegeven, hoe het voelt om live te coderen. Maak je geen zorgen als je hier niet veel (of niets) van begrijpt. Blijf gewoon even zitten en geniet …

## Een loop “live” brengen

Om te beginnen, kopieer de volgende code in een lege buffer:

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

Klik nu op de `Afspeel`-knop en je zal een lekkere snelle basdrum horen. Je kan nu, als je dat wenst, het geluid stoppen door op de `Stop`-knop te klikken. Maar doe dat nog even niet… volg in plaats daarvan de volgende stappen:

1. Zorg ervoor dat dit basdrum geluid nog steeds loopt
2. Verander de waarde van `sleep` van `0.5` naar een ietwat hoger getal, zoals bv. `1`.
3. Klik opnieuw op de `Afspeel`-knop
4. Merk op dat de snelheid van de drum is veranderd.
5. En onthoud dit moment, dit is de eerste keer dat je een “Live Code” met Sonic Pi hebt gedaan en het is waarschijnlijk niet je laatste…

Ok, dat was eenvoudig. Laten we iets aan de mix toevoegen. Boven `sample :bd_haus` voeg je deze regel toe `sample :ambi_choir, rate: 0.3`. Jouw code moet er nu als volgt uitzien:

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

En nu, aanpassen maar. Verander de `rate:` (snelheid) waardes - wat gebeurt er, als je hoge waarden gebruikt, of kleine waarden of negatieve waarden? Kijk wat er gebeurt wanneer je de `rate:` waarde van het `:ambi_choir` sample maar een tikkeltje verandert (bv. `0.29`). Wat gebeurt er als je een héél kleine `sleep` (rust) waarde kiest? Kijk nu of je het zo snel kan laten gaan dat je computer stopt en een foutmelding geeft omdat hij het niet meer kan verwerken (wanneer dit gebeurt, kun je gewoon een grotere `sleep` tijd instellen en op `afspelen` klikken).

Probeer eens één van de `sample` regels te laten beginnen met `#`:

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

Merk op hoe het de computer vertelt deze regel te negeren, zodat we deze niet horen. Dit heet een “comment” (commentaar-regel). In Sonic Pi kunnen we een commentaar-regel gebruiken om klanken uit de mix te verwijderen of weer toe te voegen.

Ik laat je nu even met het volgende spelen. Neem de onderstaande code, en kopieer deze in een lege buffer. Probeer er nu nog niet al te veel van te begrijpen, maar wel in te zien dat er twee loops zijn - dus twee klanken die op hetzelfde moment spelen. Het beste wat je nu kan doen is er gewoon lekker op los experimenteren. Hier zijn enkele suggesties:

- Wijzig de blauwe `rate:` waarden, om het geluid van de sample te horen veranderen.
- Wijzig de `sleep` waarden en hoor, dat je beide loops kunt afspelen met verschillende rusttijden.
- Probeer de commentaar-regel te activeren (verwijder de `#`) uit onze “sample”-regel en geniet van het gitaargeluid, dat zich nu achterwaarts afspeelt.
- Probeer de blauwe `mix:` waarden te veranderen naar getallen tussen `0` (niet in de mix) en `1` (voluit in de mix).

Denk er aan, om op `Afspelen` te klikken om deze veranderingen te kunnen horen zodra de volgende loop begint. Maak je geen zorgen als het hierbij soms in de soep draait, klik dan op `Stop`, wis de code in de buffer en plak er een nieuwe kopie in, zo ben je weer klaar om opnieuw te gaan improviseren. Van je fouten kan je nu eenmaal het beste leren.

    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

Blijf nu spelen en experimenteren tot je een beetje begint te begrijpen hoe het allemaal werkt en je begint af te vragen wat je hier allemaal nog meer mee kan doen. Dan ben je klaar om de rest van de handleiding te lezen.

Dus, waar wacht je nog op…