Jump to content
Sign in to follow this  

HELP needed on Jazz Lines from fragments

Recommended Posts

Dear All


I'm studying some 4-note cells for Coltrane like jazz patterns from a video lesson of saxophonist Chad Lefkowitz-Brown.

The idea is to use a limited number of cells (no more than 10, some diatonic and some chromatic) to create

longer lines, like the line below.


1) The idea is to connect the same fragments with different transpositions, adjusting the transpositions according

 to the construction of the line. I need a code where I can experiment the order and the transpositions of the

fragments to create a longer line. Sometimes I can have two times the same pattern with different transposition.


2) The possibility to rotate fragments would be interesting also.

3) Lastly: a random assembling that automatically adjust the transpositions, in a way that each new fragment starts

exactly a semitone up or down the preceeding fragment, making a cohesive line.


Any help is welcome !!

Looking forward to PLAY this patterns on the guitar and record some Videos (where I can mention Opusmodus, of course !)


Best !






I tried the form below, but I'm not very happy with that.

(setf xa (pitch-fragment 1 4 '(g4 gb4 f4 g4)
:transpose '(0))
	   xb (pitch-fragment 2 3 '(c4 cs4 fs4)
:transpose '(0 1 2 1))
	   xc (pitch-fragment 2 3 '(c4 cs4 fs4)
:transpose '(0 1 2 1))
	   xd (pitch-fragment 2 3 '(c4 cs4 fs4)
:transpose '(0 1 2 1))
	   xe (pitch-fragment 1 3 '(g4 g4 g4)
:transpose '(0 1 2 1))
	   xf (pitch-fragment 4 3 '(c4 c4 c4)
:transpose '(0 0 7 2)))

(setf seq '(f a e))
(assemble-section 'x seq)
(setf jazzline (flatten (assemble-section 'x seq)))

(setf rhyjazz (gen-repeat 50 '(s)))

       :length rhyjazz
       :pitch jazzline)


These are not the actual fragments, just some ideas do debug the code...


Share this post

Link to post
Share on other sites

 Another idea would be to set manually each transposition in one setf expression.
 But it would be a lot of work.

 Maybe the setf Expressions could be related to chord symbols,  so we could related to a tune structure 

Share this post

Link to post
Share on other sites

I don't know if it could help, but i've played a bit with the idea and made this example.

Naturally, it is very raw and not very sophisticated but i 've had some fun with it.


;;; Some cells
(setf cells-reserv '((s c4 d4 eb4 f4)(s g4 f4 d4 eb4)(s c4 eb4 d4 f4)(s g4 d4 f4 eb4)(s f4 d4 eb4 c4)(s eb4 d4 c4 g4)))

;;; Vectors of integers (between 0 to 5 because 6 cells in cells-reserv)
(setf vector-ctrl-1 '(0 2 0 3 0 2 0 4 5 4 3 4 5 4 2 1 2 0 2 1 0 1 0))
;; that vector is generated algorithmically
(setf vector-ctrl-2 (rnd-number 24 0 (length cells-reserv)))
(setf vector-ctrl-3 (rnd-number 24 0 (length cells-reserv)))

;;; some transposition
(setf trsp1 '(0 7 0 2 4 7 4 3 2 0 2 4 3 4 5 5 2 1 2 3 2 1 0))
(setf trsp2 (rnd-number 24 0 6))
(setf trsp3 (rnd-number 24 0 11))
;;; generate phrases
(setf phrase1 (pitch-transpose trsp1 (vector-map  cells-reserv vector-ctrl-1)))
(setf phrase2 (pitch-transpose trsp2 (vector-map  cells-reserv vector-ctrl-2)))

;;; introduce some cells variant
(setf phrase3 (pitch-transpose trsp3 (pitch-variant
                                       cells-reserv vector-ctrl-3))))

;;; Assemble the parts and add some rests
(setf part1 (length-weight (assemble-seq phrase1 phrase2 phrase3) :weight '(6 1)))

(def-score cells 
            :key-signature 'chromatic 
            :time-signature '(4 4) 
            :composer "Stéphane Boussuge"
            :copyright "Copyright © 2018 s.boussuge"
            :tempo 180

 :omn part1
 :channel 1
 :sound 'gm
 :program 'Tenor-Sax


Share this post

Link to post
Share on other sites

Dear Stephane,


I'm getting some strange results...

Don't know what I am missing... almost there


;;; Some cells
(setf cells-reserv '(
(s c4 d4 e4 g4)
(s c4 d4 g4 e4)
(s g4 e4 c4 d4)
(s c4 d4 f4 g4)
(s c4 d4 g4 f4)
(s g4 f4 c4 d4)
(s c4 d4 g4 f4)
(s g4 gb4 f4 g4)
(s g4 gb4 f4 a4)
(s g4 gs4 a4 c5)
(s d4 f4 g4 a4)
(s a4 g4 f4 d4)
(s d4 f4 g4 c5)))

;0 Trane 1235 (CELL 1)
;1 Trane 1253
;2 trane 5312
;3 1245 > C7M (passing 4) CELL 2
;4 1254
;5 5412
;6 1254
;7 CROM1  1 7 b7 1
;8 1 7 b7 9
;9 5 #5 6 1
;10 1 b3 4 5
;11 5 4 b3 1
;12 2451

(setf vector-ctrl-1 '(7 7 7))
(setf trsp1 '(0 1 2 0))
(setf phrase1 (pitch-transpose trsp1 (vector-map  cells-reserv vector-ctrl-1)))

When evaluating this code:


(setf vector-ctrl-1 '(7 7 7))
(setf trsp1 '(0 1 2 0))
(setf phrase1 (pitch-transpose trsp1 (vector-map  cells-reserv vector-ctrl-1)))

I get the cell #7 transposed correctily by semitones



But when I mix some different cell, I get an unexpected result...


(setf vector-ctrl-1 '(7 7 7 1))
(setf trsp1 '(0 1 2 0))
(setf phrase1 (pitch-transpose trsp1 (vector-map  cells-reserv vector-ctrl-1)))

With the code above, I expected to have the same chromatic cell#7 3 times and then the cell #1 in transposition 0,

but I got cell #12 3 times INSTEAD of cell #7, and then the cell #1, as expected...




I dont know what I missed...

The VECTOR number correspond to the order of the cells in the cells-reserv,  right ?




Share this post

Link to post
Share on other sites

Hi Julio, use substitute-map in place of vector mapping because if you use the vector-map function, the vector you give need to contain at least one time one of each value. if not, it is rounded internally by the function (the vector-map function determine (deduct) itself it's own bounds by the ambitus of the numbers you give to it.)


So, better to do:


(setf phrase1
        (gen-integer (- (length cells-reserv) 1))



All the best



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this