Dette lille eksempelet er egnet til å illustrere 3 viktige ting:
(generator cage instrument-note (length 100) (vars (prob (expr (interpl count 0 0 100 8)))) (setf note (item (notes ¯(g4 weight prob) (a weight prob) bf (c weight prob) d (e weight prob) f (r max 1) ; ta en pause en gang i mellom in random for 1))) ; rekalk. av vekt pr. note (setf rhythm (item (rhythms s e te te te q. in random tempo 40))) (setf duration rhythm))
Figure 4.7: Akrostikk med varierende sannsynlighet
Algoritmen utsetter
sannsynlighetsberegningen for notene
C,A,G,E til ``seinere''. Når algoritmen spilles, blir disse notenes
relative vektlegging forandret som en funksjon av verdien på algoritmens
``count''-parameter som går fra 0 til length-1 for
algoritmen.
Variabelen `` prob'' er det utsatte uttrykket (en
``expr'')
som beregner vektene til C,A,G,E--notene. Mens
algoritmen utføres vil ``expr'' -en automatisk bli regnet ut hver gang
den blir støtt på i random-strømmen. Siden
random-item-streams rekalkulerer sannsynligheten for elementene
sine en gang pr. strømmens periode, har vi satt perioden til 1 her
for å få sannsynligheten rekalkulert på en note pr. note basis.
Sannsynlighetene er uttrykt som en
interpolasjon-funksjon,
så du
kan eksperimentere med koordinatene for å oppnå ulike
effekter.