Jump to content
Sign in to follow this  
Wim Dijkgraaf

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

Share this post


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.

Share this post


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

Share this post


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.

Share this post


Link to post
Share on other sites

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.

Sign in to follow this  

  • Similar Topics

    • By spuki
      Hi there,
      i'm a excited beginner with OM!
      Just exploring and modifying the turotials.
       
      One Question:
      What would be a good approach to sort the notes which are generated from the snippet below to, say, a scale.
      In other words: The outoot below is chromatic. How can i turn it into a scale, eg. d-phrygian)
      Thank you!
       
      (setf size 60) (setf vector       (gen-sine        size 1 '(0.5 0.4 0.3 0.6)        :modulation (gen-sine size 1 0.3 :phase 180))) (setf pitchvec (vector-to-pitch '(g1 g6) vector))  
    • By JulioHerrlein
      In the jazz world, Barry Harris came up with the idea of harmonizing a bebop scale.
      Combining a C6 (C, E, G, A) and a Bdim7 (B, D, F, Ab) chords, we have this scale:
       

       
      From this stantpoint we can alternate tonic and dominant sounds, like this:
       

       
      Every pair of chords have all the 8-note set.
      The notes C,E, G and A are always harmonized with a C6 chord.
      The notes D, F, Ab and B are always harmonized with a Bdim7 chord.
       
      So, from the point of view of sets, there is no problem.
       
      WHAT IS NEEDED:
       
      I want a way to start FROM the melody, and then make a four part block harmonization with this (or any other) harmonic system
       from the melody as an OMN expression.
       
      So, I need a way to filter the notes to aply the right chord:
       
      FOR EXAMPLE:
       
      For the notes C, E, G and A
      If the note is an C (in any register), I will apply a chord like , I will add the notes A, G and E, below the melody.
      If the note is an  (in any register), I will apply a chord like , I will add the notes G, E and C, below the melody.
      And so on...
      For the notes D, F, Ab and B:
       
      If the note is an B (in any register), I will apply a chord like , I will add the notes Ab, F and D, below the melody.
      And so on:
       
      So, to make any procedure:
       
      I need first find a way to apply a specific procedure only over the notes I want, over all the C notes, all the B notes, etc.
       
      How to filter from an OMN expression ?
       
      All the best !
      Julio
       
       
       
       
    • By Wim Dijkgraaf
      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
       
×
×
  • Create New...