Hangok generálása
Nézd meg az alábbi példát. Mi történik?
live_loop :melody do
use_synth :blade
r = [0.25, 0.25, 0.5, 1].choose
play (chord :c, :minor).choose, attack: 0, release: r
sleep r
end
Van egy olyan r
változó, amely egy bizonyos értéket kap a ciklus lejátszásakor, és ezt az értéket használja a kezdés beállításának és az sleep hosszának. A változó egy kicsit olyan, mint egy doboz, ahol tárolhatsz dolgokat és kiveheted azokat. A változó használata egyszerű: variable_name = variable_value
. Most a változó_értéket a változó_neve tárolja. Az értéket egyszerűen a változónév beírásával kaphatod meg.
Adjunk a példához egy szintetizátort és egy basszust a változók kipróbálására. A :keys
ciklus egyszerű, semmi új nem történik, de a :bass
hurok egy kicsit trükkös:
live_loop :melody do
use_synth :blade
r = [0.25, 0.25, 0.5, 1].choose
play (chord :c, :minor).choose, attack: 0, release: r
sleep r
end
live_loop :keys do
use_synth :blade
play chord(:c, :minor)
sleep 1
end
live_loop :bass do
use_synth :fm
n = (chord :c2, :minor).tick
3.times do
play n
sleep 1
end
play n
sleep 0.5
play (chord :c2, :minor).tick
sleep 0.5
end
n = (chord :c2, :minor).tick
egy hangot választ a C-moll skálából és elmenti az n
nevű változóba. Ezután a .tick
amindig továbblép a következő értékre a hívás után. play n
lejátssza a mentett hangot. Ezután ismét hívja a .tick
-et, hogy megkapjuk a következő hangot az akkordból. Amikor a ciklus újra elindul, a .tick
tovább folytatja onnan, ahol tartott.