[CM] pclass and mathematics of harmony

John J Foerch jjfoerch@earthlink.net
Sun, 08 Jan 2006 17:07:08 -0500

In the case of transpose.lisp, a staff object is given as an
argument to transpose.  I don't see a way to get the correct
staff object from the scope of a note.  I am looking at
cmn0.lisp, (line 1369) at the defun of staff.  I'll paste
the portion I'm looking at:

(defun staff (&rest objects)
  (let* ((new-staff (make-instance 'staff)))
	(data actions local-brace)
	(notify new-staff objects)
      (setf *cmn-staff* new-staff)
      (setf (staff-data new-staff) data)

If I am reading this correctly, the notes (objects) are
being evaluated via notify before *cmn-staff* is set to
point to the staff they are in.  Is there any reason
*cmn-staff* could not be set before the processing of the

I will experiment at this end.

Thank you!

-John J Foerch

Bill Schottstaedt writes:
 > Perhaps transpose.lisp will help -- the key signature is found with
 > key-p while scanning the staff data list.