RST Posted June 27, 2015 Posted June 27, 2015 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. Quote
RST Posted June 27, 2015 Author Posted June 27, 2015 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)) Quote
RST Posted June 27, 2015 Author Posted June 27, 2015 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)) Quote
opmo Posted June 27, 2015 Posted June 27, 2015 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. Quote
opmo Posted June 28, 2015 Posted June 28, 2015 (edited) 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 June 28, 2015 by opmo Quote
RST Posted June 29, 2015 Author Posted June 29, 2015 Fantastic!!! I will study this - thanks so much! Quote
opmo Posted July 27, 2015 Posted July 27, 2015 The random seed bug in GEN-LOOP and GEN-EVAL function is fixed in ver.1.1 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.