Live-kodning

En av de med spännande sakerna med Sonic Pi är att den låter dig skriva och förändra koden live när du gör musik, precis som när du uppträder live med en gitarr. Så om du övar lite så kan du ta med dig Sonic Pi upp på scenen när du kör ett “gig”.

Öppna ditt sinne

Innan vi går in på djupet hur Sonic Pi fungerar i resten av denna manual så skulle jag vilja att du får uppleva hur det är att live-koda. Du behöver inte förstå allt ännu, håll bara i dig så startar vi äventyret …

En live-slinga

Låt oss börja, kopiera följande program till en tom buffert ovanför:

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

Tryck nu på Kör-knappen och du kommer höra en skön, snabb bastrumma som dunkar på. Om du vill stoppa ljudet, kan du när som helst trycka på Stopp-knappen. Tryck inte på den riktigt än…Följ istället dessa steg:

  1. Se till att ljudet från bastrumman fortfarande kör
  2. Ändra på värdet för sleep från 0.5 till något högre, exempelvis 1.
  3. Tryck på Kör-knappen igen
  4. Notera hur tempot på trumman har förändrats.
  5. Slutligen, kom ihåg detta ögonblick, det är första gången du live-kodar med Sonic Pi, men troligtvis inte den sista…

Ok, det var väl rätt enkelt. Låt oss mixa in något annat också. Ovanför sample :bd_haus lägg till raden sample :ambi_choir, rate: 0.3. Koden skall nu se ut så här:

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

Så, dags att leka runt lite. Ändra siffrorna - vad händer när du skriver in höga, låga eller negativa värden? Se vad som händer när du ändrar värdet på rate: för :ambi_choir' lite grann (säg till 0.29). Vad händer om du väljer en riktigt litet värde på sleep? Se om du kan få den att gå så snabbt att körningen avslutas med ett felmeddelande för att datorn inte kan hänga med (om det händer, välj bara ett större värde på sleep och tryck på Kör` igen).

Pröva att kommentera ut en av sample-raderna genom att skriva in ett #-tecken i början av raden:

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

Notera hur denna rad hoppas över av datorn, så att vi inte hör den. Detta kallas för en kommenterad rad. I Sonic Pi kan vi använda kommentarer för att ta bort och lägga till saker då man mixar.

Låt mig avslutningsvis ge dig något kul att leka med. Ta koden nedan och kopiera den till en ledig buffert. Du behöver inte försöka förstå exakt vad den gör, förutom att det finns två slingor - så två saker kör runt samtidigt. Gör nu det du är bäst på - experimentera och pröva dig fram. Här är lite förslag:

Kom ihåg att trycka på Kör-knappen och du kommer höra förändringen nästa gång slingan börjar om. Det är ingen fara om du trasslar till det och det inte fungerar längre - tryck på Stopp, ta bort koden i bufferten och klistra in en ny kopia av koden, så är du klar att jamma loss igen. Det är genom att göra misstag som man lär sig snabbast…

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

Fortsätt gärna med att spela och experimentera tills din nyfikenhet på hur detta egentligen fungerar tar överhanden och du börjar fundera på vad mer du kan göra med det. Du är nu så förberedd att du är färdig att ta del av resten av handboken.

Så, vad väntar du på…