Forritun í beinni

Eitt af því sem er mest spennandi við Sonic Pi er þú getur skrifað kóða og breytt honum á meðan hann keyrir til að skapa tónlist, svona eins og þegar spilað er á gítar. Það þýðir að þegar þú hefur náð ákveðinni færni gætir þú farið með Sonic Pi á svið og haldið gigg.

Opnaðu hugann

Áður en við förum í smáatriðin um hvernig Sonic Pi virkar hér á eftir í þessu kennsluefni, langar mig til að láta þig upplifa hvernig það er að kóða beint. Ekki hafa áhyggjur þó þú skiljir lítið (eða ekkert) af þessu. Haltu þér bara fast í sætinu og njóttu …

Lifandi lykkja

Byrjum á þessu. Afritaðu þennan kóða inn í tómt rissblað hér fyrir ofan:

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

Ýttu nú á Run hnappinn og þá muntu heyra hraðan bassatommuslátt spilaðan. Ef þú vilt stöðva hljóðið getur þú ýtt á Stop hnappinn. En ekki ýta á hann strax … Fylgdu heldur þessum leiðbeiningum:

  1. Gættu þess að bassatrommuhljóðið sé enn að spila
  2. Breyttu tölunni fyrir sleep úr 0.5 í eitthvað annað, t.d. 1.
  3. Ýttu aftur á Run hnappinn
  4. Taktu eftir að hraði trommunnar hefur breyst.
  5. Ekki gleyma þessu augnabliki. Þetta er í fyrsta sinn sem þú hefur “kóðað lifandi” í Sonic Pi og örugglega ekki í það síðasta …

Jæja, þetta var nú nógu einfalt. Kryddum nú súpuna aðeins: Bættu við fyrir ofan sample :bd_haus nýrri línu sample :ambi_choir, rate: 0.3. Nú ætti kóðinn þinn að vera svona:

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

Fiktaðu nú í þessu. Breyttu rate tölunum (rate=tíðni) - hvað gerist ef þú notar hærri tölur eða litlar tölur eða mínus tölur? Gáðu hvað gerist ef þú breytir rate tölunni fyrir sample:ambi_choir (sample=sýni) bara örlítið (t.d. í 0.29). Hvað gerist ef þú notar mjög litla sleep tölu (sleep=hvíld)? Gáðu hvort þú getir látið þetta spila svo hratt að tölvan stoppi með villu því hún getur ekki fylgt eftir (ef það gerist þarftu bara að velja stærri sleep tölu og ýta svo aftur á Run).

Prófaðu að gera eina sample línuna óvirka með því að bæta # framan við hana:

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

Táknið # lætur tölvuna sleppa línunni, svo hún heyrist ekki. Þetta má nota til að gera línur óvirkar án þess að eyða þeim. Líka til að skrifa athugasemdir (comment) til að útskýra kóða.

Hér að lokum færðu svolítið sem er gaman að fikta við. Veldu kóðann hér fyrir neðan og afritaðu hann yfir á tómt rissblað. Ekki reyna að skilja þetta of mikið nema hvað nú hefurðu tvær lykkjur - eitthvað tvennt sem fer í hringi á sama tíma. Gerðu nú það sem þú gerir best - að gera tilraunir og leika þér með þetta. Hér eru nokkrar hugmyndir:

Mundu að ýta á Run eftir breytingar og þá heyrast þær í næstu umferð lykkjunnar. Ef þú lendir í veseni, ekki örvænta. Ýttu bara á Stop, eyddu kóðanum á rissblaðinu og límdu nýtt afrit á það og þá geturðu haldið áfram að djamma. Af mistökunum lærir maður best …

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

Haltu nú áfram að leika þér og gera tilraunir þangað til þú ferð að pæla í hvernig þetta allt saman virkar og þú ferð að velta fyrir þér hvað sé hægt að gera fleira með þessu. Þá munt þú læra sem mest á kennslunni sem fylgir hér á eftir.

Halló, eftir hverju ertu að bíða …