<div dir="ltr">Hi - When I execute this last bit, I don't get a random distribution of octaves the way I *think* I am supposed to. It doesn't seem to cycle through the row, it just puts out a repeated pitch.<div><br></div><div>Also, when I try to use :time (now) in the mp:midi section, I get no sound. If I use :time 0, things work fine.<br><div><br></div><div>Any help would really be appreciated.</div><div>Rob</div><div>-----------------------------------------</div><div><br></div><div><div>(define (chance? prob)</div><div> (< (random 1.0) prob))</div><div><br></div><div>(define (keynum->pc k)</div><div> (mod k 12))</div><div><br></div><div>(define (retrograde-row row)</div><div> (reverse row))</div><div><br></div><div>(define (transpose-row row to)</div><div>(loop for pc in row</div><div> collect (keynum->pc (+ pc))))</div><div><br></div><div>(define (invert-row row)</div><div> (loop for pc in row</div><div> collect (keynum->pc (- 12 pc))))</div><div><br></div><div>(define row1 '(0 1 6 7 10 11 5 4 3 9 2 8))</div><div>(define row2 (invert-row row1))</div><div>(define row3 (retrograde-row row1))</div><div>(define row4 (retrograde-row row2))</div><div><br></div><div>(define (ttone reps row key beat amp)</div><div> (process with len = (length row)</div><div> repeat reps</div><div> for i from 0</div><div> for p = (mod i len)</div><div> for pc = (list-ref row p) ; i mod 12</div><div> for k = (+ key pc)</div><div> do</div><div> (mp:midi :key k :time 0 :dur beat)</div><div> (wait beat)))</div><div>;;execute</div><div>(sprout (ttone 13 row1 60 2 .2))</div><div><br></div><div>;;;;;;;;;This returns repeated note on execution</div><div>(define (ttone2 len row key beat amp)</div><div> (process repeat len</div><div> for i from 0</div><div> for p = (mod i len)</div><div> for pc = (list-ref row p)</div><div> for n = (if (chance? .5)</div><div> (+ key 12)</div><div> (- key 12))</div><div> for k = (+ n pc)</div><div> do (mp:midi :time 0 :key key :dur 1 :amp amp)</div><div> (wait beat)))</div><div>;;;;;;;;;just a repeated note. doesn't run through row</div><div>(sprout (ttone2 12 row1 55 2 .2)) </div><div><br></div><div>(define (ttone3 len row key beat amp)</div><div> (process repeat len</div><div> for i from 0</div><div> for pc = (list-ref row (mod i 12))</div><div> for w = (* beat (random 4))</div><div> for n = (if (= w 0)</div><div> (if (chance? .5)</div><div> (+ key 12)</div><div> (- key 12))</div><div> key)</div><div> for k = (+ n pc)</div><div> do</div><div> (mp:midi :time 0 :dur beat :key key :amp amp)</div><div> (wait w)))</div><div><br></div><div>(sprout (ttone3 12 row1 55 2 .2))</div></div></div></div>
<br>
<hr><a href="http://www.presby.edu" target="_blank"><img src="http://www.presby.edu/misc/logo-sig.png"></a>