Élő kódírás

Az egyik legizgalmasabb tulajdonsága a Sonic Pinak, hogy segítségével élőben szerkesztheted az általad megírt kódot, amellyel zenét szólaltatsz meg, mintha élőben játszanál egy gitáron. Ez azt jelenti, hogy valamennyi gyakorlással képes leszel magaddal vinni a Sonic Pi-t a színpadra és előadni vele.

Tárd ki az elméd

Mielőtt igazán belevágnánk annak részleteibe, hogy hogyan működik a Sonic Pi, szeretnék egy kis ízelítőt adni arról, hogy milyen élőben kóddal játszani. Ne aggódj, ha nem értesz meg sok mindent (vagy semmit) belőle! Csatold be az öveket és érezd jól magad…

Egy élő loop (ismétlődés)

Kezdetnek másold be az alábbi kódot egy üres pufferbe:

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

Most nyomd meg a Run gombot, és egy gyors ütemű basszusdobot hallasz. Ha bármikor le szeretnéd állítani a hangot, csak nyomd meg a Stop gombot. Bár még ne nyomd meg… helyette kövesd az alábbi lépéseket:

  1. Bizonyosodj meg afelől, hogy még mindig szól a dob
  2. Valamennyivel növeld meg a sleep értékét 0.5-ről, mondjuk 1-re.
  3. Nyomd meg a Run gombot ismét
  4. Figyeld meg, hogy a dob sebessége megváltozott.
  5. Végül jegyezd meg ezt a pillanatot, mert most játszottál kóddal élőben először a Sonic Pi-on keresztül, és nem valószínű, hogy ez az utolsó alkalom…

Ok, that was simple enough. Let’s add something else into the mix. Above sample :bd_haus add the line sample :ambi_choir, rate: 0.3. Your code should look like this:

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

Now, play around. Change the rates - what happens when you use high values, or small values or negative values? See what happens when you change the rate: value for the :ambi_choir sample just slightly (say to 0.29). What happens if you choose a really small sleep value? See if you can make it go so fast your computer will stop with an error because it can’t keep up (if that happens, just choose a bigger sleep time and hit Run again).

Try commenting one of the sample lines out by adding a # to the beginning:

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

Notice how it tells the computer to ignore it, so we don’t hear it. This is called a comment. In Sonic Pi we can use comments to remove and add things into the mix.

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 :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…