Gör en låt
Fantastiskt! Nu har du en låt med ett bra trumkomp, hihats, bas och melodi. Nu gör vi något som öppnar Sonic Pis egentliga potential. Vi tillägger slumpmässighet i koden! Det betyder att vi låter datorn “kasta tärning” för oss och bestämma över t.ex vilka toner som spelas.
Transponering betyder att man antingen höger eller sänker tonhöjden. Vi kan t.ex. låta datorn ibland transponera en live_loop
två tonsteg högre. Det lyckas med hjälp av kommandot if one_in(6)
som vi provar i nästa exempel:
Märkte du hur melodin ibland var högre? I exemplet kallar vi på if one_in(6)
varje gång live_loopen startas om. Kommandot berättat åt Sonic Pi att kasta en virtualisk sexsidig tärning och om resultatet är sex, transponeras melodin (play_pattern_timed) två tonsteg högre. Om resultatet är något annat än sex transponeras melodin inte.
Nu provar vi att göra något intressant åt baslinjen. Med .choose
kan du välja ett slumpmässigt element från en lista. Som i det här exemplet:
I Sonic Pi behöver du inte minnas vilka toner hörs till vilket ackord. Istället för att skriva [:c, :e, :g]
kan du skriva chord(:C, :major). T.ex:
Vi använder den här metoden t.ex. i ett “bubblande” basspår som är bekant från Acid House-musik. Spara ditt arbete (Tryck på Save) och kopiera din :bas
-loop till en ny buffer. Vi tömmer live_loopen så att vi kan skriva om den. Använd synthen :tb303
för den nya basen och spela c-dursackordet som sextondelstoner:
Inte riktigt bra än! Tonernas längd är automatiskt 1 (release: 1
). Tillsätt kommandot , release: 0.125
efter play
, så borde resultatet låta mycket bättre.
Tills nu har du använt parametrarna attack:
och release:
med play - metoden, men det finns många fler och vilka du kan använda kan bero på vilken synth du använder. Till exempel :tb303
- ljudet har 45 olika parametrar som man kan bearbeta ljudet med. Prova att ändra basljudet med parametern cutoff
, som klipper bort alla frekvenser över cutoff-värdet. Med cutoff kan du använda värden mellan 0 och 130.
Med cutoff lönar det sig inte att använda något bestämt värde. Vi kan göra låten mycket intressantare genom att ändra på värdet slumpmässigt. Vi kan kan använda en ny metod rrand(min, max)
, som lottar ut slumpmässiga värden mellan värdena min och max. Vi provar det här i baslinjen:
Jättefint! Kom ihåg att utforska och prova olika värden med de olika kommandona från exemplet. Som repetition, här är programmet vi har skrivit med hjälp av exemplen: