Jump to content

Featured Replies

Posted

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

 

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é

  • 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

Create an account or sign in to comment


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy