Jump to content


Recommended Posts



I'am examine 'harmonic-path more closly and have some hard time to understand, if someone could please explain some things to me..


(setf chord '(c3 g3 c4 e4 f3 c4 f4 a4))

(setf melodytest '( c4 cs4 d4 e4 f4 fs4 g4 gs4))
(harmonic-path chordtest2 melodytest  :octave 'path  )
==>(c3 g3 c4 e4 f3 f4 a4 c3)

in the example above harmonic-path is obviously swallowing the recurring notes (and is looping the path although the doc says the default is looping nil),

why, I don't get the logic behind it? And can I change this?


In the example below there is no difference in the output between :loop t or :loop nil, I assumed that the looping parameter concerns both, the path and the sequence..?

What am I missing? Thanks!


(setf chord '(c3 g3 c4 e4 f3 c4 f4 a4))

(setf melody '(c4 cs4 d4 e4))
(harmonic-path chord melody  :octave 'path :loop t )
==>(c3 g3 c4 e4)

(setf melody '(c4 cs4 d4 e4))
(harmonic-path chord melody  :octave 'path :loop nil )
==>(c3 g3 c4 e4)


Link to comment
Share on other sites

(setf mat
      '((s c4 cs4 gs4 eb4 d4 g4 fs4 a4 e4 bb4 b4 f4)
        (s c4 d4 eb4 bb4 f4 g4 a4 fs4 b4 e4 gs4 cs4)
        (s c4 a4 g4 cs4 fs4 b4 f4 eb4 e4 gs4 d4 bb4)
        (s c4 b4 bb4 f4 e4 d4 cs4 eb4 gs4 fs4 a4 g4)
        (s c4 gs4 d4 cs4 g4 f4 fs4 eb4 a4 b4 bb4 e4)
        (s c4 d4 bb4 e4 g4 a4 fs4 b4 eb4 gs4 f4 cs4)
        (s c4 gs4 cs4 fs4 b4 g4 eb4 f4 a4 d4 e4 bb4)
        (s c4 b4 fs4 e4 d4 cs4 f4 a4 eb4 bb4 gs4 g4)
        (s c4 eb4 cs4 g4 f4 gs4 d4 a4 b4 fs4 bb4 e4)
        (s c4 a4 eb4 fs4 gs4 f4 bb4 d4 b4 g4 e4 cs4)
        (s c4 cs4 g4 b4 gs4 e4 f4 fs4 d4 eb4 bb4 a4)
        (s c4 fs4 e4 eb4 cs4 f4 bb4 g4 a4 gs4 d4 b4)))

(setf path '(fs4a4c5 a4c5e5 b4db5fs5))
(harmonic-path path mat :octave 'path :time '(1/2 3/4 4/4) :loop t)
(harmonic-path path mat :octave 'path :time '(1/2 3/4 4/4) :loop nil)


The :time option controls the time (duration) of each path:

1st  path  fs4a4c5  for 1/3
2nd  path  a4c5e5   for 3/4
3rd  path  b4db5fs5 for 4/4


if loop is nil then the last value of the time list (4/4) will apply to each path (its duration):  '(1/2 3/4 4/4 4/4 4/4 4/4 4/4 . . .)
if loop is set to t then the time list values will repeat again and again: '(1/2 3/4 4/4 1/2 3/4 4/4 1/2 3/4 4/4 . . .)

If you path is a list or one chord then there is no need for a loop option. 

Link to comment
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.

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