# Live Kodning

En af de mest interessante aspekter af Sonic Pi er, at det giver dig mulighed for at skrive og modificere live kodning for at lave musik, præcis som man måske ville spille live på en guitar. Det betyder, at med øvelse så kan man tage Sonic Pi med på scenen og spille med det.

## Frigør dine tanker

Før vi rigtigt går i detalgerne med hvordan Sonic Pi virker i resten af denne vejledning, vil jeg gerne give dig en oplevelse af, hvordan det er at kode live. Bare rolig, selv hvis du ikke forstår meget (hvis noget) af koden; hold fast i stolen og nyd det…

## En live løkke

Lad os starte! Koppier det følgende kode ind i en tom buffer ovenfor:

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

Du klikker nu på “Run” knappen og vil høre lyden af en hurtig stortromme. Hvis du ønsker at stoppe, klikker du på “Stop” knappen. Men klik ikke på den endnu, følg disse steps i stedet:

Sørg for, at lyden af stortrommen stadig kører Prøv at ændre værdien “Sleep” fra “0,5” til en højere værdi, f.eks. “1”. Klik på “Run” knappen igen Læg mærke til, hvordan trommelydens hastighed har ændret sig. Til sidst, husk øjeblikket, dette er første gang du har live-kodet med Sonic Pi, men sandsynligvis ikke den sidste…

Ok, det var enkelt nok. Lad os tilføje noget mere. Over `sample: bd_haus` tilføj linjen `sample :ambi_choir, rate: 0.3`. Din kode skal se sådan ud:

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

Tid til at lege lidt. Skift satserne - hvad sker der, når du bruger store værdier, eller små værdier eller negative værdier? Se hvad der sker, når du ændrer `rate:` værdien for lydklippet `:ambi_choir` en smule (f.eks til`0,29`). Hvad sker der hvis du vælger en meget kort `sleep` værdi? Se om du kan få det til at gå så hurtigt at din computer vil stoppe med en fejl, fordi den ikke kan følge med (hvis det sker, skal du bare vælge en længere ‘sleep’ tid og trykke på `Run` igen).

Prøv at udkommentere en af `sample` linjerne ved at tilføje et ‘#’ i starten af linien:

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

Bemærk hvordan linien bliver ignoreret af computeren, så vi ikke hører den. Dette kaldes en kommentar. I Sonic Pi kan vi bruge kommentarer til at fjerne og tilføje dele mens man mixer.

Lad mig afslutningsvis give dig lidt sjovt at lege med. Tag koden herunder, og kopier den til en ekstra buffer. Du behøver ikke at forstå præcist hvad koden gør, andet end at der er to loops - to dele der bliver gentaget samtidigt. Gør nu det, du gør bedst - eksperimentér og leg. Her er nogle forslag:

Prøv at ændre den blå `rate:` værdi og hør hvordan lydklippet ændrer sig. Prøv at ændre ‘sleep’ metodens ‘times’ og hør efter hvordan begge løkker kan køre rundt på forskellige hastigheder. Prøv at fjerne kommenteringen på ‘sample’ linjen (fjern ‘#’) og nyd lyden af guitaren der spiller baglæns. Prøv at ændre nogen af de blå `mix:` værdier til tal mellem `0` (ikke med i mix) og `1` (helt med i mixet).

Remember to press `Run` and you’ll hear the change next time the loop goes round. If you end up in a pickle, don’t worry - hit `Stop`, delete the code in the buffer and paste a fresh copy in and you’re ready to jam again. Making mistakes is how you’ll learn the quickest…

    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

Now, keep playing and experimenting until your curiosity about how this all actually works kicks in and you start wondering what else you can do with this. You’re now ready to read the rest of the tutorial.

So what are you waiting for…