# Live Coderen

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

## 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

We gaan van start, 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 `afspeelknop` en je zal een lekkere snelle basdrum horen. Je kan nu, als je dat wenst, het geluid stoppen door op de `Stopknop` te klikken. Maar doe dat nog even niet… volg in plaats daarvan de volgende stappen:

1. Zorg ervoor dat deze basdrum klank 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 `afspeelknop`
4. Merk op dat de snelheid van de drum hierbij veranderd is.
5. En onthou dit moment, dit is de eerste keer dat je een Live Code met Sonic Pi hebt gedaan en het is waarschijnlijk niet je laatste keer…

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

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

Speel hiermee. Verander de `rate:` (snelheid) waardes - wat gebeurd er, als je hoge waarden gebruikt,of kleine waarden of negatieve waarden? Kijk wat er gebeurd wanneer je de `rate:` waarde van het `:ambi_choir` sample maar een tikkeltje veranderd (bv. 0.29). Wat gebeurd 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 gebeurd, kun je gewoon een grotere `sleep` tijd instellen en op `afspelen` klikken).

Probeer één van de `sample` lijnen van een commentaar te voorzien door er een `#` voor te zetten:

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

Merk op hoe het de computer opdraagt deze lijn te negeren, zodat we deze niet horen. Dit heet een comment (commentaarlijn). In Sonic Pi kunnen we een commentaarlijn gebruiken om klanken uit de mix te verwijderen of 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 het zelfde moment spelen. Het beste wat je kan doen nu is, experimenteren en er, gewoon op los, mee te gaan spelen. Hier zijn enkele suggesties:

- Wijzig de blauwe `rate:` waarden, om het geluid van de sample-klank te horen veranderen.
- Wijzig de `sleep` tijd en hoor nu, dat je beide loops kunt afspelen met verschillende rusttijden.
- Probeer de commentaarlijn te wissen (verwijder het `#`) uit onze voorbeeldlijn en geniet van de gitaarklank, die nu achterwaarts afspeelt.
- Probeer de blauwe `mix:` waarden te veranderen naar cijfers tussen `0` (niet in de mix) en `1` (voluit in de mix).

Denk er ook aan, te klikken op ‘afspelen’ om deze veranderingen te kunnen horen, bij de volgende loop die vertrekt. 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 je bent weer gereed 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 de nieuwsgierigheid begint te voelen en je je begint af te vragen wat je hier nog allemaal mee kan doen. Dan ben je nu klaar om de rest van de handleiding te lezen.

Dus,waar wacht je nog op . . .