[CM] bug fixes

Rick Taube taube@uiuc.edu
Wed, 19 Jul 2006 16:17:06 -0500


guess it was my day to fix bugs. it may take a few hours to migrate to 
anon. cvs.

1. scales.cm (rev 1.29):
    tuning now looks for initial 0 cent value (or scaler 1) to determine 
if the values are degrees or steps.

2. patterns.scm (rev 1.22):
    Rotation has been added to pattern macro and a #a[rotation of 1 2 3 
4] to sal.

3. sal/parse.lisp (rev 1.4), sal/sal.lisp (rev 1.5) :
    Fixed bug that stopped 'for x over ...' from working.
    Fixed bug that stopped unbounded 'for x from' from working.
    Added rotation to #a pattern constructors.
    Syntax for load and open commands should NOT require comma 
delimiting.
    (well, I did say that Sal would be a bit of a moving target...)


this demos all these bugs fixed:


; tuning uses primes in harmonic series octave 5

define variable prime5 = #a[tuning ratios: {17/17 19/17 23/17 29/17 
31/17 2}
                                    lowest: 261.625]

define process playprime5 ()
   run for i over #a[rotation 0 1 2 3 4 5 6 7 8 9 10
                              repeat 12]
     for j from 0
     for k = keynum( i, from: prime5)
     output #a[midi time: now() keynum: k]
     wait If( mod(j, 11) = 0, .4, .2)
     end

open "test.mid" channel-tuning: 8

sprout playprime5()




--rick