October 24, 20169 yr Hi, here's some example of pitch generation. Naturally, Opusmodus have infinite possibilities and it is just few example of possible way of pitch generation. ;;; SOME (FEW) IDEAS FOR PITCH GENERATION ;;; SB. 09/2016 ;; FROM VECTORS (setf vect1 (gen-white-noise 32 :seed 33)) (setf p1 (vector-to-pitch '(a3 a5) vect1)) ;; SMOOTHED VECTOR (setf vect2 (vector-smooth 0.02 vect1)) (setf p2 (vector-to-pitch '(a3 a5) vect2)) ;; without direct repetition (setf p2b (filter-repeat 1 p2)) ; see also gen-accumulate and other vectors (pink-noise, brownian etc..). ;;; ====================================== ;; RANDOM-CHOICES (setf p3 (rnd-sample '(4 3 7 8 4 5) (list (make-scale 'c3 24)) :seed 12)) ;; without repetition (setf p4 (rnd-unique '(4 3 7 8 4 5) (gen-repeat 6 (list (make-scale 'c3 24))) :seed 12)) ;;; ====================================== ;; PITCH FROM INTEGERS (setf int1 (rnd-sample '(8 4 7 3) (list (gen-integer 16)))) (setf p5 (integer-to-pitch int1)) ;; COOL FOR ARPEGIOS (setf int2b (gen-integer-step 0 32 '(1 1 2))) (setf int2 (gen-integer-step 0 32 (rnd-sample 6 '(1 2 3 4 -1 -2 -3 -4)))) (setf p6 (integer-to-pitch int2)) ;;; ====================================== ;; PITCH FROM INTERVALS (setf intv1 (interval-direction-series '(1 2 3) '(1 2 1 (2 1)) :first 'd)) (setf p7 (interval-to-pitch intv1)) (setf intv2 (interval-series '(3 2 1 2 3) '(1 2 3) :seed 34)) (setf p8 (interval-to-pitch intv2)) (setf intv3 (interval-expansion-series 10 '(1 -1 2 -2) '(1 2 3) '(-6 -5 3 4) :max-interval 6)) (setf p9 (interval-to-pitch intv3)) ;; extend the first element of intv3 with a matrix (setf intv4 (interval-row-matrix (1~ intv3))) (setf p10 (interval-to-pitch intv4)) ;; PITCH DIRECTION SERIES EXAMPLE (setf p11 (pitch-direction-series '(2 2 2 2 2) '(c4g4 c4g4 c4g4 c4g4 c4g4 c4g4 c4g4 c4g4 c4g4) :first 'd :ambitus '(-12 24))) (setf p11-each-in-list (mclist p11)) (setf p11-melodized (melodize p11-each-in-list)) (setf p11-chordized (chordize p11-melodized)) ;;; ====================================== ;; EXTRACT CHORDS (SETS) FROM ROW (setf row (rnd-row :type :pitch :transpose 4 :seed 783)) ;; GEN-CHORD (setf p12 (gen-chord 24 3 6 -6 6 row :seed 42)) ;; longer output (setf p13 (gen-chord 24 3 6 -6 6 (gen-trim 64 row) :seed 42)) ;; create sets (setf p14 (melodize (mclist p13))) ;; GEN-CHORD2 (setf p15 (gen-chord2 32 '(3 6 5) row)) (setf p16 (gen-chord2 32 '(3 6 5) row :offset '(2 1 3 2 4))) (setf p17 (gen-chord2 32 '(3 6 5) row :offset '(2 1 3 2 4) :transpose (rnd-number 8 -6 6 :seed 4))) (setf p18 (gen-chord2 32 '(3 6 5) row :offset '(2 1 3 2 4) :transpose (rnd-number 8 -6 6 :seed 4) :rnd-octaves t)) ;; control the output (setf p19 (chord-interval-remove '(1 2) p17)) (setf p20 (chord-interval-replace '(1 2) '(13 14) p17)) ;; voice leading (setf p21 (chord-relative-path '(c2c3g3e4a4d5) p20 :seed 31 :ambitus '(c2 c6))) (setf p22 (chord-closest-path '(c2c3g3e4a4d5) p20 :seed 31 :ambitus '(c2 c6))) ;; GEN-CHORD3 (setf p23 (gen-chord3 (rnd-sample 12 (make-scale 'c3 11) :seed 2) '((4 2 5)(3 5 11)(4 6 10)) :cycle t)) (setf p24 (gen-chord3 (rnd-sample 12 (make-scale 'c3 11) :seed 2) '((4 2 5)(3 5 11)(4 6 10)) :cycle t)) (setf p25 (gen-chord3 (rnd-sample 12 (make-scale 'c3 11) :seed 2) '((4 2 5)(3 5 11)(4 6 10)) :cycle nil)) (setf p26 (gen-chord3 (rnd-sample 12 (make-scale 'c3 11) :seed 2) '((4 2 5)(3 5 11)(4 6 10)) :cycle t :relative t :seed 4)) ;;; ====================================== ;; HARMONIC-PROGRESSION (setf p27 (harmonic-progression (integer-transpose -1 '(1 1 1 3 1 2 4 3 1 1 3 4 5 6 5 3 1 -2 -2 1 1)) row )) ;; HARMONIC-PROGRESSION FROM SCALES (setf p28 (harmonic-progression (integer-transpose -1 '(1 1 1 3 1 2 4 3 1 1 3 4 5 6 5 3 1 -2 -2 1 1)) '(d4 messiaen-mode5) :size '(4 3 5) :step '(2 1 3 2) )) ;; HARMONIC-PROGRESSION FROM SCALES with relative path (setf p28 (harmonic-progression (integer-transpose -1 '(1 1 1 3 1 2 4 3 1 1 3 4 5 6 5 3 1 -2 -2 1 1)) '(d4 messiaen-mode5) :size '(4 3 5) :step '(2 1 3 2) :relative t :seed 33 )) ;; create sets of pitches from p28 (setf p28b (melodize (mclist p28))) ;; Melodic material from random order of each set (setf p28c (rnd-order p28b :seed 4)) Happy Opusmodusing !! SB.
Create an account or sign in to comment