Posted December 8, 20168 yr I would like to be able to convert a major or minor triad in any inversion and any octave position of it's notes to the intervals of its root position. Can't use pitch classes for this since major and minor triads are concidered the same pitch class. Can't find the right approach. For example: '(e3 g4 c5) -> '(4 3) '(eb3 g4 c5) -> '(3 4) '(g1 e7 c8) -> '(4 3) (g1 eb7 c9) -> '(3 4) The Tonnetz functions are almost working but this is the missing link to get it working. Many thanks in advance. Wim Dijkgraaf
December 8, 20168 yr should work... (defun get-root-intervals (pitches) (integer-to-interval (sort-asc (pitch-to-integer (ambitus-octaves 'c4 1 pitches))))) (get-root-intervals '(g1 c9 e6)) (get-root-intervals '(f3 d4 a4)) interested to see your work :-) greetings andré
December 9, 20168 yr Author Hi AM, I'll share the code this weekend. Is written in a horrible way ... I'm really a beginner with Lisp and getting the concept to work is currently more important then writing the best Lisp code possible :-) But hope that sharing will decrease the learning curve a bit. Big hug
December 10, 20168 yr Author Have published the initial Tonnetz implementation (really bad code, has to be refactored and has some bugs): https://github.com/willemdijkgraaf/ClTonnetz Big hug
Create an account or sign in to comment