Jump to content

Harmonizing a major scale using 4-part-drop-2 inversion x


Recommended Posts

Is there a more elegant way to do this?

 

;; create major scale
(defun majorScale (root) (make-scale root 16 :alt '(2 2 1 2 2 2 1)))
;; usage:
(majorScale 'c4)

;; 4 part root position harmony of every degree of a major scale
(defun harmonizeMajorScale (root) (harmonic-progression '(0 1 2 3 4 5 6 7) (majorScale root) :size 4))
;; usage:
(harmonizeMajorScale 'c4)

;; 4 part drop 2 of every degree of a major scale, with every chord in a specific inversion
(defun 4PartDrop2 (chords inversion)
 (loop for chord in chords
   collect  
     (chordize 
       (pitch-transpose-n '(0 0 -12 0) 
         (pitch-melodize
           (list 
             (chord-inversion inversion chord)
           )
         ) 
       )
     )
  )
)
;; usage:
(4PartDrop2 (harmonizeMajorScale 'c4) 3)

Any advice very much appreciated.

 

Kind regards,

 

Wim Dijkgraaf

Link to post
Share on other sites
(mapcar (lambda(x)   ;; mapcar will apply the inversion to each chord
          (chord-inversion 3 x)) 
        (harmonic-progression  ;; harmonic progression definition
         (integer-transpose -1 '(1 2 3 4 5 6 7)) ;;degree for the chords
         '(c4 major)   ;; scale used
         :size 4     ;; chords size
         ))

SB.

Link to post
Share on other sites

Thanks Stephane for your reply. Interesting solution!

 

If I'm not mistaken, your solution doesn't include the Drop 2 (transpose second voice from the top an octave down). Any idea how to incorporate that into this approach?

 

Kind regards,

 

Wim Dijkgraaf

Link to post
Share on other sites

Hi Wim,

 

a possible solution:

 

(setf chords (mclist 
              (mapcar 
               (lambda(x)   ;; mapcar will apply the inversion to each chord
                 (chord-inversion 3 x)) 
               (harmonic-progression  ;; harmonic progression definition
                (integer-transpose -1 '(1 2 3 4 5 6 7)) ;;degree for the chords
                '(c4 major)   ;; scale used
                :size 4     ;; chords size
                ))))



(setf drop2 (chordize-list
             (pitch-transpose-n 
              '(0 0 -12 0)
              (pitch-melodize chords))))

SB.

Link to post
Share on other sites
  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy