[CM] just intonation

Rick Taube taube@uiuc.edu
Mon, 9 Jul 2007 15:14:27 -0500


a "just" scale is simply a scale built from ratios in the harmonic  
series. you could create these scales using function that takes a  
fundamental and as many ratios as you like:

(defun jscale (fund &rest ratios)
   (loop for r in ratios collect (* fund r)))

(define (jscale fund . ratios)
   (if (null? ratios) '()
     (cons (* fund (car ratios))
	  (apply jscale fund (cdr ratios)))))

; just major scale

(jscale 220.0  1 9/8 5/4 4/3 3/2 5/3 15/8 2)

=> (220.0 247.5 275.0 293.33334 330.0 366.66666 412.5 440.0)


; harry partch 43-tone just scale

(jscale 220.0  1/1 81/80 33/32 21/20 16/15 12/11 11/10 10/9 9/8 8/7  
7/6 32/27 6/5
	11/9 5/4 14/11 9/7 21/16 4/3 27/20 11/8 7/5
         10/7 16/11 40/27 3/2 32/21 14/9 11/7 8/5 18/11 5/3 27/16  
12/7 7/4 16/9
         9/5 20/11 11/6 15/8 40/21 64/33 160/81 2/1)

=> (220.0 222.75002 226.875 230.99998 234.66667 240.0 242.0 244.44446  
247.5 251.42859
256.66666 260.74075 264.0 268.8889 275.0 280.0 282.85715 288.75  
293.33334 297.0
302.5 308.0 314.28574 320.0 325.9259 330.0 335.2381 342.22223  
345.71426 352.0 360.0
366.66666 371.25 377.14285 385.0 391.1111 396.0 400.0 403.33334 412.5  
419.0476
426.6667 434.5679 440.0)