Jump to content

Combining Lenghts and make-omn


Recommended Posts

I am working with this idea:

trying to create short fragments to combine into the omn for score and playback.

(setq r1 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r2 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r3 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r4 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(init-seed nil)

(setf sl-1 '(c4 d4 eb4 fs4 gs4 b4))

(setf p-group1
(sort-asc
 (find-unique
  (flatten
   (pitch-transpose '(-12 0) (gen-repeat 5 (list sl-1)))))))

(setf p1 (gen-loop 5 (pitch-transpose-n '(12) (rnd-sample 11 p-group1))))
(setf p2 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p3 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p4 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))

(span r1 p1)
(span r2 p2)

(setf pit (list p1 p2))
(setf len (list r1 r2))

(setf output (make-omn :length len :pitch pit))

 

(setf output (make-omn :length len :pitch pit)) - spawns an error with :length len but with :length r1 is is okay.  Is there a good way to combine the length variables for MAKE-OMN ?

I am assuming that all the omn elements need to be made independently and then to use ASSEMBLE-SEQ to knit them together.

 

such as:

(setf segment1 (make-omn :length r1 :pitch p1)
(setf segment2 (make-omn :length r2 :pitch p2)
(setf segment3 (make-omn :length r3 :pitch p3)

 

etc...

THEN:

(setf knit (assemble-seq segment1 segment2 segment3))

 

...for example...

Thanks for any advice here.

Link to comment
Share on other sites

Here is my solution as described:

(setq r1 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r2 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r3 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(setq r4 (gen-loop 4 (rnd-order
                      (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                  (7ee = = = = = =) (7eee = = = = = =)
                                  (7eeee = = = = = =))) :seed 35)))

(init-seed nil)

(setf sl-1 '(c4 d4 eb4 fs4 gs4 b4))

(setf p-group1
(sort-asc
 (find-unique
  (flatten
   (pitch-transpose '(-12 0) (gen-repeat 5 (list sl-1)))))))

(setf p1 (gen-loop 5 (pitch-transpose-n '(12) (rnd-sample 11 p-group1))))
(setf p2 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p3 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p4 (gen-loop 5 (pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))

(span r1 p1)
(span r2 p2)
(span r3 p3)
(span r4 p4)

(setf seg1 (make-omn :length r1 :pitch p1))
(setf seg2 (make-omn :length r2 :pitch p2))
(setf seg3 (make-omn :length r3 :pitch p3))
(setf seg4 (make-omn :length r4 :pitch p4))

(setf output (assemble-seq seg1 seg2 seg3 seg4))
(setf ts-list (get-time-signature output))

(def-score score-name
     (:title "GUITAR_SECTION_X"
      :key-signature '(c maj)
      :time-signature ts-list
      :tempo 52
      :layout (list
               (bracket-group
                (guitar-down8-layout 'guitar))))
  
  (guitar
   :omn output
   :channel 1
   :sound 'gm
   :program 'acoustic-guitar-nylon
   :pan 64))
Link to comment
Share on other sites

Here is a version of the above using gen-eval which removes the compile warnings.

(setq r1 (gen-eval 4 '(rnd-order
                       (rnd-pick '((e - = =) (e - 3ee = =) (5e = = = =)
                                   (7ee = = = = = =) (7eee = = = = = =)
                                   (7eeee = = = = = =))) :seed 35)))

(setq r2 (gen-eval 4 '(rnd-order
                       (rnd-pick '((e - = =) (e - 3ee = =)
                                   (5e = = = =) (7ee = = = = = =)
                                   (7eee = = = = = =) (7eeee = = = = = =))) :seed 35)))

(setq r3 (gen-eval 4 '(rnd-order
                       (rnd-pick '((e - = =) (e - 3ee = =)
                                   (5e = = = =) (7ee = = = = = =)
                                   (7eee = = = = = =) (7eeee = = = = = =))) :seed 35)))

(setq r4 (gen-eval 4 '(rnd-order
                       (rnd-pick '((e - = =) (e - 3ee = =)
                                   (5e = = = =) (7ee = = = = = =)
                                   (7eee = = = = = =) (7eeee = = = = = =))) :seed 35)))

(init-seed nil)

(setf sl-1 '(c4 d4 eb4 fs4 gs4 b4))

(setf p-group1
(sort-asc
 (find-unique
  (flatten
   (pitch-transpose '(-12 0)
                    (gen-repeat 5 (list sl-1)))))))

(setf p1 (gen-eval 5 '(pitch-transpose-n '(12) (rnd-sample 11 p-group1))))
(setf p2 (gen-eval 5 '(pitch-transpose-n '(0 1 3) (rnd-sample 11 p-group1))))
(setf p3 (gen-eval 5 '(pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p4 (gen-eval 5 '(pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))

(span r1 p1)
(span r2 p2)
(span r3 p3)
(span r4 p4)

(setf seg1 (make-omn :length r1 :pitch p1))
(setf seg2 (make-omn :length r2 :pitch p2))
(setf seg3 (make-omn :length r3 :pitch p3))
(setf seg4 (make-omn :length r4 :pitch p4))

(setf output (assemble-seq seg1 seg2 seg3 seg4))
(setf ts-list (get-time-signature output))

(def-score score-name
     (:title "GUITAR_SECTION_X"
      :key-signature '(c maj)
      :time-signature ts-list
      :tempo 52
      :layout (list
               (bracket-group
                (guitar-down8-layout 'guitar))))
  
  (guitar
   :omn output
   :channel 1
   :sound 'gm
   :program 'acoustic-guitar-nylon
   :pan 64))
Link to comment
Share on other sites

The use of ASSEMBLE-SEQ here, is correct.

Or:

(setf lengths (assemble-seq r1 r2 r3 r4))
(setf pitches (assemble-seq p1 p2 p3 p4))
(setf output (make-omn :length lengths :pitch pitches))

 

There are no errors in your score.

 

Link to comment
Share on other sites

Other way to score:

(setf dur '((e - = =) (e -) (3q = =)
            (5e = = = =) (7q = = = = = =)
            (7eee = = = = = =)
            (7h = = = = = =)))

(init-seed 356)

(setq r1 (gen-eval 4 '(rnd-order (rnd-pick dur))))
(setq r2 (gen-eval 4 '(rnd-order (rnd-pick dur))))
(setq r3 (gen-eval 4 '(rnd-order (rnd-pick dur))))
(setq r4 (gen-eval 4 '(rnd-order (rnd-pick dur))))

(init-seed nil)

(setf sl-1 '(c4 d4 eb4 fs4 gs4 b4))

(setf p-group1
      (sort-asc
       (find-unique
        (flatten
         (pitch-transpose '(-12 0)
                          (gen-repeat 5 (list sl-1)))))))

(setf p1 (gen-eval 5 '(pitch-transpose-n '(12) (rnd-sample 11 p-group1))))
(setf p2 (gen-eval 5 '(pitch-transpose-n '(0 1 3) (rnd-sample 11 p-group1))))
(setf p3 (gen-eval 5 '(pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))
(setf p4 (gen-eval 5 '(pitch-transpose-n '(0 1 6) (rnd-sample 11 p-group1))))

(setf length (assemble-seq r1 r2 r3 r4))
(setf pitch (assemble-seq p1 p2 p3 p4))

(setf seq (make-omn :length length :pitch pitch))
(setf ts-list (get-time-signature seq))

(def-score score-name
     (:title "GUITAR_SECTION_X"
      :key-signature '(c maj)
      :time-signature ts-list
      :tempo 52
      :layout (guitar-down8-layout 'guitar))

     (guitar
      :omn seq
      :channel 1
      :sound 'gm
      :program 'acoustic-guitar-nylon
      :pan 64))

 

Edited by opmo
Link to comment
Share on other sites

  • 4 weeks later...

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.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy