Chord extensions with degree function

Last one, I promise :wink:, I’ll try to stop resurrecting these old threads.

This one features two melodic figures played over a cycle of 4ths. The two melodic figures are :add2 and the upper tetrachord of the mixolydian mode, accessed using take_last(4)which is then reversed. The reverse figure enables lines that start to move out of an instruments useable range to be transposed in a more fluid fashion than just moving the root which creates discontinuities. There is a third figure, not used here, that can also be deployed, which displaces the line via an octave jump.

If there are any immediate issues, it is that there’s no real awareness of octave and therefore no knowledge of which figure to deploy. As such this code is just an illustration to follow on from the previous example in the post above.

If you want to play around with it then change the 0’s and 1’s in the seq array/ring, and/or change the octave of the root notes in the cycle5 ring/array. Try it at different tempi. it’s also worth looking at the occurrence of 0/1 in the seq array and have the 1’s be used as a means of subdividing the overall pattern. So it could be grouped into different accent groups which brings in another layer to consider.

Hope someone finds it useful.

Regards
Hussein

use_bpm 220

cycle5 = ring(:A2, :D3, :G2, :C3, :F2, :Bb2, :Eb3, :Ab2, :Db3, :Fs3, :B2, :E2)
seq = [0,0,1,0,1,0,0,1,0,0,1,1]

live_loop :testRun do
  cnt = 0
  cycle5.size.times do
    r = cycle5[cnt]
    choices = ring((chord r, :add2), (scale r, :mixolydian).take_last(4).reverse)
    currentSelection = seq[cnt]
    ch = choices[currentSelection]
    ch.size.times do
      play ch.tick, release:0.3
      sleep 0.5
    end
    cnt +=1
  end
end
2 Likes