Programiranje v živo

Pri Sonic Pi-ju je zelo zanimivo to, da lahko sproti spreminješ program in tako delaš glasbo, kot če bi igral kitaro. To pomeni, da lahko z nekaj vaje programiraš tudi na odru!

Počuti se prost

Before we get into the real details of how Sonic Pi works in the rest of this tutorial, I’d like to give you an experience of what it’s like to live code. Don’t worry if you don’t understand much (or any) of this. Just try to hold onto your seats and enjoy…

“Živa zanka”

Pa začnimo. Kopiraj naslednji program v prazen delovni prostor:

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

Zdaj klikni gumb “Zaženi” in slišal boš lep zvok udarjanja po bobnu. Če bi želel ustaviti zvok, bi lahko kadar koli kliknil “Ustavi”. Kljub temu ga zdaj še ne klikni … Raje naredi to:

  1. Prepričaj se, da se program še vedno izvaja
  2. Za “sleep” namesto “0.5” napiši kakšno večjo številko, kot je na primer “1”.
  3. Znova klikni gumb “Zaženi”
  4. Si opazil, da se je hitrost bobna spremenila?
  5. Zapomni si ta trenutek. Prvič si programiral v Sonic Pi-ju in škoda bi bilo, da bi bilo to tudi zadnjič…

Dobro, to je bilo zelo preprosto. Dodajmo še kaj drugega. Nad “sample :bd_haus” dodaj vrstico “sample :ambi_choir, rate: 0.3”. Tvoj program zdaj izgleda podobno kot ta:

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

Malo se poigrajmo. Spremeni številke za “rate:” - kaj se zgodi, če uporabiš visoko vrednost? Ali morda nizko, celo negativno? Poglej, kaj se zgodi, če spremeniš “rate” za “ambi_choir” samo malo (recimo “0.29” - pazi, da uporabiš decimalno piko in ne vejice, kot v slovenščini). Kaj se zgodi, če pri “sleep” napišeš res majhno številko? Poskusi narediti glasbo tako hitro, da se bo ustavila, ker se računalnik ne bo mogel dohajati (če se to zgodi, samo spremeni številko in spet klikni “Zaženi”).

Poskusi eno od vrstic, ki se začneta s “sample”, spremeniti v opombo, tako da na njenem začetku napišeš “#”:

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

Si opazil, da “#” pove računalniku, da naj vrstico preskoči, tako da v njej določenega zvoka ne slišimo. Temu se reče opomba. V Sonic Pi-ju lahko opombe uporabimo, da odstranimo ali dodamo zvoke.

Finally, let me leave you something fun to play with. Take the code below, and copy it into a spare buffer. Now, don’t try to understand it too much other than see that there are two loops - so two things going round at the same time. Now, do what you do best - experiment and play around. Here are some suggestions:

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 :kitara 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 :bum 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.

Torej tisto, na kar čakaš …