Generatiivisuus
Muistathan komennon chord
, joka palauttaa listana jonkin soinnun sävelet?
Sonic Pi:ssä on myös komento nimeltä scale
, joka palauttaa kaikki määriteltyyn sävellajiin kuuluvat sävelet:
choose
-komennolla saat poimittua jonkin satunnaisen elementin listasta. Jos haluaisitkin käydä listan elementit järjestyksessä läpi, voit käyttää siihen erittäin tehokasta komentoa nimeltä tick
:
Tämä esimerkki käy järjestyksessä läpi kaikki E-molliskaalaan kuuluvat sävelet kolmannesta oktaavista, ja se hoituu lisäämällä .tick
sitä edeltävän scale
- tai chord
-komennon perään. tick
-komento on paikallinen jokaiselle live_loop
:lle, joka tarkoittaa sitä että jokaisessa live_loop
:ssa voi olla käytössä oma tick
:
Ketju (ring) eroaa listasta siinä että ketjussa tick
palaa aina ensimmäiseen elementtiin viimeisen jälkeen. Listan läpikäyminen tick
:llä puolestaan aina päättyy viimeisen elementin jälkeen. Edellisessä esimerkissähän scale
:n läpikäyminen tick
:llä jatkui viimeisen elementin jälkeen. scale
ja chord
antavat aina ketjun normaalin listan sijaan. Joskus saatat haluta luoda oman listan (esimerkiksi säveliä) ja tehdä siitä ketjun kutsumalla komentoa .ring
:
Katsotaan seuraavaksi hieman edistyneempää esimerkkiä. Tässä lista sointuja muutetaan ketjuksi ja sitä käydään läpi .tick
:llä:
Koristellaan melodia vielä saman sävellajin melodialla! Huom. lisäkomento .mirror
kääntää seuraavan esimerkin ketjun ympäri (ts. aloittaa ketjun korkeimmasta sävelestä matalimman sijaan):
Kokeile seuraavaksi tick
:iä erilaisten ketjujen ja listojen kanssa ja anna tietokoneen hoitaa melodiakulkujen soitto.