CM(165): (with-sound() ;; 10 seconds of this is way too long ;; we only control the onset time of each note (loop for time from 0 by 0.2 below 10 do (fm-violin time 0.1 440 0.1))) "/zap/test.snd" CM(166): (with-sound() (loop ;; 2 seconds total may be tolerable for time from 0 by 0.2 below 2 ;; we add another controlling variable, ;; frequency starts at 230 Hz and steps by 10 Hz on each iteration for freq from 230 by 10 do (fm-violin time 0.1 freq 0.1))) "/zap/test.snd" CM(168): (with-sound() (loop for time from 0 by 0.2 below 2 ;; frequency is randomly chosen between 200 and 250Hz for freq = (+ 220 (random 50.0)) do (fm-violin time 0.1 freq 0.1))) "/zap/test.snd" CM(169): (with-sound() (loop for time from 0 by 0.2 below 2 ;; intermediate binding, steps by 100 starting at 200 for j from 220 by 100 ;; add a random component to the staircase for freq = (+ j (random 50.0)) do (fm-violin time 0.1 freq 0.1))) "/zap/test.snd" CM(170): (with-sound() (loop for time from 0 by 0.2 below 2 for j from 220 by 100 for freq = (+ j (random 50.0)) ;; add random amplitudes for amp = (+ 0.05 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(171): (with-sound() (loop for time from 0 by 0.2 below 2 for j from 220 by 100 for freq = (+ j (random 50.0)) for amp = (+ 0.01 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(172): (with-sound() (loop for time from 0 by 0.2 below 2 for j from 220 by 100 for freq = (+ j (random 50.0)) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(173): (with-sound() (loop for time from 0 by 0.2 below 2 for j from 220 by 100 for freq = (+ j (random 50.0)) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(174): (expt 2 (/ 12)) 1.0594631 CM(175): (with-sound() (loop ;; this is the "spacing" of semitones in the ;; 12 tone tempered scale with inc = (expt 2 (/ 12)) for time from 0 by 0.2 below 2 ;; frequency starts at 220 and then is ;; multiplied by a constant each iteration ;; (note it is multiplied as opposed to the ;; addition we were doing before. Multiplying ;; by a constant gives us equally spaced ;; intervals in the perceptual space... for freq = 220 then (* freq inc) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(176): (with-sound() (loop ;; this tempered scale splits a "octave" ;; where the upper note is 3 times the ;; lower note into 12 parts with inc = (expt 3 (/ 12)) for time from 0 by 0.2 below 2 for freq = 220 then (* freq inc) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(177): (with-sound() (loop with inc = (expt 3 (/ 12)) for time from 0 by 0.2 below 2 for freq = 220 then (* freq inc) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(178): (with-sound() (loop ;; this one is the spacing between notes ;; in clusters in Stockhausen's Studio I with inc = (expt 5 (/ 25)) for time from 0 by 0.2 below 2 for freq = 220 then (* freq inc) for amp = (+ 0.001 (random 0.5)) do (fm-violin time 0.1 freq amp))) "/zap/test.snd" CM(179):