Kappaleen tekeminen
Lisää uusi live_loop bassoa varten ja kirjoita sille yksinkertainan ja toimiva bassolinja. Voit käyttää halutessasi selaimessa toimivaa virtuaalipianoa bassolinjan melodian tavailua varten. Alla on esimerkki bassolinjasta:
live_loop :basso do
play :c2
sleep 0.25
play :c2
sleep 2
play :e2
sleep 0.75
play :f2
sleep 1
endSeuraavaksi opit miten Sonic Pi:n play-komennon soivan äänen saa muunnettua. Joka kerta kun kutsut Sonic Pi:ssä komentoa play se käyttää syntetisaattorin oletusääntä beep ellei sitä ole aiemmin koodissa muutettu. Syntetisaattorin (tuttavallisemmin syntikan) äänen voi vaihtaa komennolla use_synth :syntikan_nimi ennen play-komentojen kutsuminen.
Alla olevassa esimerkissä käytämme syntikan bassona ääntä nimeltä fm:
live_loop :basso do
use_synth :fm
play :c2
sleep 0.25
play :c2
sleep 2
play :e2
sleep 0.75
play :f2
sleep 1
endSonic Pi:ssä on todella monia mielenkiintoisen kuuloisia syntikoita. Voit löytää eri ääniä helposti use_synth komennon jälkeen avautuvasta listasta tai Apupaneelin (Help) Synths-välilehdeltä.
Toisinaan saatat haluta soittaa säveliä eri pituisina. Tämä voidaan tehdä lisäämällä play-komentoon parametrit attack ja release, jotka muokkaavat äänenvoimakkuutta suhteessa aikaan:
Komennot attack ja release näyttäävät seuraavanlaiselta. Nyt sävel soi yhteensä 4 iskun ajan: Se voimistuu ensimmäisen iskun ajan ja hiljenee 3 iskun ajan.

play 60, attack: 1, release: 3Voit myös sävelistä lyhyitä iskuja (staccato) asettamalla attack-arvo nollaan ja antamalla release-arvolla hyvin pieni arvo:
play :c4, attack: 0, release: 0.2Tutki vielä erilaisia syntetisaattorin ääniä ja sävelten pituuksia ja muokkaa bassoraidastasi juuri sellainen kuin haluat!
Kertauksena, olemme nyt ohjelmoineet yksinkertaisen rumpubiitin ja bassolinjan ja koodi näyttää jotakuinkin tältä:
use_bpm 100
live_loop :rummut do
sample :drum_heavy_kick
sleep 1
sample :drum_snare_hard
sleep 1
sample :drum_heavy_kick
sleep 1
sample :drum_snare_hard
sleep 1
end
live_loop :hihat do
sample :drum_cymbal_closed
sleep 0.25
sample :drum_cymbal_pedal
sleep 1
end
live_loop :basso do
use_synth :fm
play :c2, attack: 0, release: 0.25
sleep 0.25
play :c2, attack: 0, release: 0.3
sleep 2
play :e2
sleep 0.75
play :f2
sleep 1
end