No subject



Hi Sean,

Just got your email regarding computing prime forms.  If you're classifying
pitch collections that are invariant under transposition only (such most 
"tonal" chords and many "atonal" pitch collections), you probably don't
want to be computing the prime form at all, but rather the Zero-Normal Form
(ZNF).  I derived some concise integer labels for Zero-Normal Forms called
Decimal-Normal Forms (DNF's) in my master's thesis, "Computational
Description of Extended Tonality" (1996).

At Rick Taube's suggestion, I cleaned up the code in the thesis and
summarized 
the essential definitions and algorithms for computing the ZNF and DNF in a 
short paper, which I have attached to this email message.  The paper is
titled "Computing the Decimal-Normal Form -- A Concise Nomenclature for
T[n]-Types."  It was presented earlier this year at the 1997 West Coast Music

Theory Conference in Santa Barbara.

The function Binary-Normal-and-Transp decribed on p. 2 of this paper 
computes the Binary-Normal Form and Normal-Transposition of a pitch 
in a straightforward manner:

(defun Binary-Normal-and-Transp (pitch-seq)
  (let* ((binary-codes 
          (mapcar #'(lambda (transp) (BINARY-CODE
                                      (PROPER-SET
                                       (MOD-12
                                        (SUB pitch-seq transp)))))
                  (NUMBERS 12)))
         (min-code (MINIMUM binary-codes)))
    (values min-code (position min-code binary-codes))))

An optimized version of this function appears on p. 202 of my masters
thesis:

(defun FAST-BITWISE-BINARY-NORMAL-and-TRANSP (pitch-set)
  (let* ((binary-code (BINARY-CODE (PROPER-SET (MOD-12 pitch-set))))
         (minimum-code 4096)
         (minimum-index)
         (rotated-code))
    (dotimes (index 12)
      (setf rotated-code
            (logand 4095
                    (ash
                     (logior (* binary-code 4096) binary-code)
                     (* -1 index))))
      (if (< rotated-code minimum-code)
        (progn
          (setf minimum-code rotated-code)
          (setf minimum-index index))))
        (values minimum-code minimum-index)))

FAST-BITWISE-BINARY-NORMAL-and-TRANSP benchmarks at about three 
times the speed of Binary-Normal-and-Transp, if speed is of concern to
you.

The thesis derives these and other definitions of musical set theory from a
computational point of view.  The thesis also discusses some limitations of
the prime form, and proposes some solutions to these problems.  I'm happy 
to send you a copy of the thesis for the cost of duplication ($25), plus 
shipping via whatever medium is most convenient for you.  Please let me 
know if I can be of further help.  

Good luck with your work!

Cheers,

John Amuedo 

3267 Butler Ave.
Los Angeles, CA  90066
(310) 397-8094



--PART.BOUNDARY.0.21454.mrin47.878892170
Content-type: multipart/appledouble;
	boundary="ad-PART.BOUNDARY.0.21454.mrin47.878892170"


--ad-PART.BOUNDARY.0.21454.mrin47.878892170