david Posted August 15, 2024 Posted August 15, 2024 hello, I'm looking for a way in the last bar (9) to go to 2/4 despite my 4/4 rhythm, is this possible? (setf name '(#|1|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|2|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|3|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|4|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|5|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|6|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|7|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|8|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|9|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|10|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|11|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|12|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|13|# (s e5 fs5 gs5 b5 e5 fs5 gs5 b5) #|14|# (s e5 fs5 gs5 b5 e5 fs5 gs5 b5) #|15|# (s cs5 eb5 f5 gs5 cs5 eb5 f5 gs5) #|16|# (s eb5 f5 g5 bb5 eb5 f5 g5 bb5) #|17|# (s c5 d5 e5 g5 c5 d5 e5 g5) )) (setf tmpO (omn-to-measure name 1/2)) (setf melo (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmpO collect (filter-repeat 1 (rnd-order x :type :pitch :seed 3))) 4/4)) :length (gen-eval 9 '(rnd-order '(e e e -e e e_q)):seed 86138))) rhythmic structure would be like this Thank you for your help Quote
jesele Posted August 15, 2024 Posted August 15, 2024 (omn-to-measure melo '(1 1 1 1 1 1 1 1/2 1/2 1/2) :loop t) Jesper Quote
david Posted August 15, 2024 Author Posted August 15, 2024 thanks jesper! There seems to be a problem with notes reservoir. (setf tmpO (omn-to-measure name 1/2)) there is one bar too many...the eleventh bar should not appear 4/4 - 4/4 - 4/4 - 4/4 -4/4 - 4/4 - 4/4 - 2/4 - 2/4 - 2/4 Quote
david Posted August 15, 2024 Author Posted August 15, 2024 (print melo) ((e f5 g5 c6 -e e_q g5 e a5) (-e e f5 g5 c6 e_q g5 e a5) (e fs5 -e e gs5 e_q cs6 e gs5 bb5) (e fs5 gs5 e_q cs6 -e e gs5 bb5) (-e e f5 g5 e_q c6 e g5 a5) (e f5 -e e g5 c6 e_q g5 e a5) (-e e e5 fs5 b5 fs5 e_q gs5) (e_q cs5 -e e eb5 gs5 eb5 f5) (e c5 -e e d5 g5 e_q d5 e e5)) we can clearly see in the last bar the whole rhythm is used, so I have an additional 2/4 bar. I wish my rhythm in rnd-order was truncated. Quote
david Posted August 16, 2024 Author Posted August 16, 2024 Thanks Jesper. this is melo, bar 9 is in 4/4, butlast deletes the last bar. what I want is to keep half of the last bar. butlast, you can see bar 9 has been deleted. I want to keep the last one but only 2/4 Quote
jesele Posted August 16, 2024 Posted August 16, 2024 (butlast (omn-to-measure melo '(1 1 1 1 1 1 1 1 1/2 1/2) :loop t)) Jesper Quote
david Posted August 16, 2024 Author Posted August 16, 2024 correct!! Do you think it is possible to integrate this last code into melo? melo (setf melo (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmpO collect (filter-repeat 1 (rnd-order x :type :pitch :seed 3))) 4/4)) :length (gen-eval 9 '(rnd-order '(e e e -e e e_q)):seed 86138))) Quote
jesele Posted August 16, 2024 Posted August 16, 2024 Why not just do (setf melo (butlast (omn-to-measure melo '(1 1 1 1 1 1 1 1 1/2 1/2) :loop t))) or (setf melo (butlast (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmpO collect (filter-repeat 1 (rnd-order x :type :pitch :seed 3))) 4/4)) :length (gen-eval 9 '(rnd-order '(e e e -e e e_q)):seed 86138)) '(1 1 1 1 1 1 1 1 1/2 1/2) :loop t))) Jesper Quote
david Posted August 16, 2024 Author Posted August 16, 2024 Thank you Jesper, you are really strong;-) indeed this is the code I am looking for but there is a problem. (setf melo (butlast (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmpO collect (filter-repeat 1 (rnd-order x :type :pitch :seed 3))) 4/4)) :length (gen-eval 9 '(rnd-order '(e e e -e e e_q)):seed 86138)) '(1 1 1 1 1 1 1 1 1/2 1/2) :loop t))) this is a reservoir of notes (setf tmpO (omn-to-measure name 1/2)) if you look carefully at the result of the last three bars, the C# should not appear. melo I should get this reservoir of notes. instead of bar 8 Quote
david Posted August 16, 2024 Author Posted August 16, 2024 Jesper, Thank you for your help. can you test this code on your version 3 to determine if it is not a bug on my version 2 om? I have a problem with the reservoir of my line 16 and omn-to-measure (setf name '(#|1|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|2|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|3|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|4|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|5|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|6|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|7|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|8|# (s fs5 gs5 bb5 cs6 fs5 gs5 bb5 cs6) #|9|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|10|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|11|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|12|# (s f5 g5 a5 c6 f5 g5 a5 c6) #|13|# (s e5 fs5 gs5 b5 e5 fs5 gs5 b5) #|14|# (s e5 fs5 gs5 b5 e5 fs5 gs5 b5) #|15|# (s cs5 eb5 f5 gs5 cs5 eb5 f5 gs5) #|16|# (s eb5 f5 g5 bb5 eb5 f5 g5 bb5) #|17|# (s c5 d5 e5 g5 c5 d5 e5 g5) )) (setf melo (butlast (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in name collect (filter-repeat 1 (rnd-order x :type :pitch :seed 1))) 4/4)) :length (gen-eval 9 '(rnd-order '(e e e -e e e_q)):seed 86137)) '(1 1 1 1 1 1 1 1/2 1/2 1/2) :loop t))) the notes bar 9 should be either: eb5 ,F5 , G5 or Bb5. I think it's because of my rhythm which is in 4/4, we can clearly see bars 8 and 9 are from the same reservoir of notes despite the request '(1 1 1 1 1 1 1 1/2 1/2 1/2) :loop t) bar 10 is ok because there is nothing after it. we can clearly see this rhythm is the priority (rnd-order '(e e e -e e e_q) Quote
jesele Posted August 16, 2024 Posted August 16, 2024 Maybe a bit convoluted but too tired to think (setf measures '(1 1 1 1 1 1 1 1/2 1/2 1/2)) (setf pitches (omn :pitch (omn-to-measure (loop for x in name collect (filter-repeat 1 (rnd-order x :type :pitch :seed 1))) measures))) (setf rhythm (omn :length (omn-to-measure (gen-eval 9 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8 )):seed 86137) measures))) (setf result (butlast (make-omn :pitch pitches :length rhythm))) Jesper Quote
david Posted August 16, 2024 Author Posted August 16, 2024 Sorry I hope, I don't want to bore you. your code is correct now!!! This means it is not really possible to combine all functions if I understand correctly...bizarre. Thank you very much for your help. Quote
jesele Posted August 17, 2024 Posted August 17, 2024 Yes, you could combine them, but for you, I think it's easier to understand what happens this way. Jesper (setf measures '(1 1 1 1 1 1 1 1/2 1/2 1/2)) (setf melo (butlast (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in name collect (filter-repeat 1 (rnd-order x :type :pitch :seed 1))) measures)) :length (omn :length (omn-to-measure (gen-eval 9 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8 )) :seed 86137) measures))))) Quote
david Posted August 18, 2024 Author Posted August 18, 2024 I think I finally figured out how to handle combination of notes and rhythms in OM. I'm talking about a theme within a Chord Set. I'm talking about a grid because the chords are often written in a grid, each box representing a bar. I find it really not easy to do in OM, I come from sequencers and other software of the same kind where you can enter chords and practice improvising on them... here you have to do everything! I believe I found only one example of Julio Herrlein on the forum, but it’s too complex to play. I'm looking to combine simple rhythms with chords approach the jazz language,, even though the term "jazz" doesn't mean much anymore;-) Thanks again, Jesper, for your valuable help. David Quote
david Posted August 24, 2024 Author Posted August 24, 2024 Hi, I continue my investigations on this post I have a "bird blues" as a note reservoir. (setf blues2 '((s g4 a4 b4 d5 g4 a4 b4 d5)(s g4 a4 b4 d5 g4 a4 b4 d5) (s fs4 a4 b4 cs5 fs4 a4 b4 cs5) (s b4 c5 ds5 fs5 b4 c5 ds5 fs5) (s e5 g5 a5 b5 e5 g5 a5 b5 ) (s a5 b5 cs6 e6 a5 b5 cs6 e6) (s d5 f5 g5 a5 d5 f5 g5 a5 ) (s g5 a5 b5 d6 g5 a5 b5 d6) (s c5 d5 e5 g5 c5 d5 e5 g5) (s c5 d5 e5 g5 c5 d5 e5 g5) (s c5 eb5 f5 g5 c5 eb5 f5 g5) (s f5 g5 a5 c6 f5 g5 a5 c6) (s b4 d5 e5 fs5 b4 d5 e5 fs5) (s e5 fs5 gs5 b5 e5 fs5 gs5 b5) (s bb4 db5 eb5 f5 bb4 db5 eb5 f5) (s eb5 f5 g5 bb5 eb5 f5 g5 bb5) (s a4 c5 d5 e5 a4 c5 d5 e5)(s a4 c5 d5 e5 a4 c5 d5 e5) (s d5 e5 fs5 a5 d5 e5 fs5 a5)(s d5 e5 fs5 a5 d5 e5 fs5 a5) (s g4 a4 b4 d5 g4 a4 b4 d5) (s e5 f5 gs5 b5 e5 f5 gs5 b5) (s a4 c5 d5 e5 a4 c5 d5 e5) (s d5 e5 fs5 a5 d5 e5 fs5 a5))) ;;;transforme en 2/4 (setf tmp1 (omn-to-measure blues2 1/2)) little solo (setf melo3 (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmp1 collect (filter-repeat 1 (rnd-order x :type :pitch :seed 20))) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2))) :length (omn :length (omn-to-measure (gen-eval 12 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8)) :seed 20) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2))))) the result is ok, except! I want to group the bars in 2/4 into 4/4, in the same code as melo3, is it possible? thank's for help David Quote
jesele Posted August 24, 2024 Posted August 24, 2024 (setf melo3 (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmp1 collect (filter-repeat 1 (rnd-order x :type :pitch :seed 20))) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2))) :length (omn :length (omn-to-measure (gen-eval 12 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8)) :seed 20) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2)))) 4/4)) Jesper Quote
david Posted August 24, 2024 Author Posted August 24, 2024 every time you understand perfectly what I'm looking for, Thanks Jesper in the same spirit I would like to add the rnd-octave function to this code in order to add some "spice" to this solo. is it ok for you ? (setf melo3 (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmp1 collect (filter-repeat 1 (rnd-octave '(bb4 fs6) (rnd-order x :type :pitch :seed 20)))) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2))) :length (omn :length (omn-to-measure (gen-eval 12 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8)) :seed 20) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2)))) 4/4)) and (setf melo3 (omn-to-measure (make-omn :pitch (omn :pitch (omn-to-measure (loop for x in tmp1 collect (filter-repeat 1 (rnd-octaves '(bb4 fs6) (rnd-order x :type :pitch :seed 20)))) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2))) :length (omn :length (omn-to-measure (gen-eval 12 '(rnd-order '(1/8 1/8 1/8 -1/8 1/8 3/8)) :seed 20) '(1 1/2 1/2 1/2 1/2 1/2 1/2 1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1/2 1/2 1/2 1/2)))) 4/4)) i play saxophone tenor and I can't do it with the instrument (rnd-octave 'tsax Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.