opmo Posted November 28, 2014 Share Posted November 28, 2014 12-tone row and its variants with randomised octaves. (setf row (rnd-row :type :pitch :transpose '?)) (setf rows (gen-repeat 12 (list row))) (setf variants (pitch-variant rows :variant '?)) (setf pitch (flatten (randomize-octaves '(c2 g7) variants))) Mapping length to pitches. (def-case rhythm (c3 '(h)) (cs3 '(q)) (d3 '(-3q = -)) (eb3 '(e.)) (e3 '(e)) (f3 '(-5q = ---)) (fs3 '(s.)) (g3 '(s)) (gs3 '(-3e - =)) (a3 '(-5e --- = -e)) (bb3 '(t -)) (b3 '(-t =)) (c4 '(h)) (cs4 '(q)) (d4 '(-3q = -)) (eb4 '(e.)) (e4 '(e)) (f4 '(-5q - = --)) (fs4 '(s.)) (g4 '(s)) (gs4 '(-3e - =)) (a4 '(-5e == -- -e)) (bb4 '(t -)) (b4 '(-t =)) (c5 '(h)) (cs5 '(q)) (d5 '(-3q = -)) (eb5 '(e.)) (e5 '(e)) (f5 '(-5q -- = -)) (fs5 '(s.)) (g5 '(s)) (gs5 '(-3e - =)) (a5 '(-5e -- == -e)) (bb5 '(-t =)) (b5 '(t -)) (otherwise '(q))) (setf len (rhythm (flatten variants))) Mapping velocity to pitches. (def-case velocity (c3 'mf) (cs3 'mp) (d3 'ppp) (eb3 'pp) (e3 'p) (f3 'mp) (fs3 'mf) (g3 'f) (gs3 'ff) (a3 'fff) (bb3 'ffff) (b3 'fffff) (c4 'mf) (cs4 'mp) (d4 'ppp) (eb4 'pp) (e4 'p) (f4 'mp) (fs4 'mf) (g4 'f) (gs4 'ff) (a4 'fff) (bb4 'ffff) (b4 'fffff) (c5 'mf) (cs5 'mp) (d5 'ppp) (eb5 'pp) (e5 'p) (f5 'mp) (fs5 'mf) (g5 'f) (gs5 'ff) (a5 'fff) (bb5 'ffff) (b5 'fffff) (otherwise 'mf)) (setf vel (velocity (flatten variants))) Mapping programs to pitches. (def-case program (c3 'pr0) (cs3 'pr1) (d3 'pr2) (eb3 'pr3) (e3 'pr4) (f3 'pr5) (fs3 'pr6) (g3 'pr7) (gs3 'pr8) (a3 'pr9) (bb3 'pr10) (b3 'pr11) (c4 'pr0) (cs4 'pr1) (d4 'pr2) (eb4 'pr3) (e4 'pr4) (f4 'pr5) (fs4 'pr6) (g4 'pr7) (gs4 'pr8) (a4 'pr9) (bb4 'pr10) (b4 'pr11) (c5 'pr0) (cs5 'pr1) (d5 'pr2) (eb5 'pr3) (e5 'pr4) (f5 'pr5) (fs5 'pr6) (g5 'pr7) (gs5 'pr8) (a5 'pr9) (bb5 'pr10) (b5 'pr11) (otherwise 'pr0)) (setf art (program (flatten variants))) Generating chords (setf pitch-serie (gen-chord2 200 (rnd-sample 200 '(1 2 3)) pitch :ambitus-chord '(13))) Putting all into OMN form (setf mat (make-omn :length len :pitch pitch-serie :velocity vel :articulation art)) Tempo (setf tempo (make-tempo (flatten (gen-repeat (rnd-sample 12 '(3 4 5 6)) '((96) (72) (88) (102) (44)))) (get-span len))) Defining score (def-score serial-map (:key-signature 'atonal :time-signature (get-time-signature mat) :tempo tempo :layout (grand-layout 'inst)) (inst :omn mat :sound 'PR :channel 1) ) Quote Link to comment Share on other sites More sharing options...
o_e Posted June 24, 2015 Share Posted June 24, 2015 Very nice and extremely helpful example! The only thing I don't understand is :sound 'PR what is 'PR? thanks anyway! Quote Link to comment Share on other sites More sharing options...
opmo Posted June 25, 2015 Author Share Posted June 25, 2015 The 'PR is the name of the sound set define by the DEF-SOUND-SET function. The names pr0, pr1 ... pr127 and cc0, cc1 ...cc127 are part of the Opusmodus system like any other attribute: gliss, ttrem, leg etc... ((s g4 f pr7) (e e6f6cs6 p pr4) (-5q bb5a5 mp pr5 - - -) (-5e 5q b6eb7d7 fff pr9 -5e - -e)) therefore the name can't be change, but the values of the programs and controllers can be modified by the user to control the own virtual instruments like Reaktor, Kontakt ... or any outboard synth. The sound set file "General OMN Programs.lisp" you find in the Utilities Library. (in-package :Opusmodus) ;;;--------------------------------------------------------- ;;; GENERAL OMN PROGRAMS (PR) ;;;--------------------------------------------------------- ;; Program and bank change events (def-sound-set PR :programs (:group Prog-0-9 pr0 0 pr1 1 pr2 2 pr3 3 pr4 4 pr5 5 pr6 6 pr7 7 pr8 8 pr9 9 :group Prog-10-19 pr10 10 pr11 11 pr12 12 pr13 13 pr14 14 pr15 15 pr16 16 pr17 17 pr18 18 pr19 19 :group Prog-20-29 pr20 20 pr21 21 pr22 22 pr23 23 pr24 24 pr25 25 pr26 26 pr27 27 pr28 28 pr29 29 :group Prog-30-39 pr30 30 pr31 31 pr32 32 pr33 33 pr34 34 pr35 35 pr36 36 pr37 37 pr38 38 pr39 39 :group Prog-40-49 pr40 40 pr41 41 pr42 42 pr43 43 pr44 44 pr45 45 pr46 46 pr47 47 pr48 48 pr49 49 :group Prog-50-59 pr50 50 pr51 51 pr52 52 pr53 53 pr54 54 pr55 55 pr56 56 pr57 57 pr58 58 pr59 59 :group Prog-60-69 pr60 60 pr61 61 pr62 62 pr63 63 pr64 64 pr65 65 pr66 66 pr67 67 pr68 68 pr69 69 :group Prog-70-79 pr70 70 pr71 71 pr72 72 pr73 73 pr74 74 pr75 75 pr76 76 pr77 77 pr78 78 pr79 79 :group Prog-80-89 pr80 80 pr81 81 pr82 82 pr83 83 pr84 84 pr85 85 pr86 86 pr87 87 pr88 88 pr89 89 :group Prog-90-99 pr90 90 pr91 91 pr92 92 pr93 93 pr94 94 pr95 95 pr96 96 pr97 97 pr98 98 pr99 99 :group Prog-100-109 pr100 100 pr101 101 pr102 102 pr103 103 pr104 104 pr105 105 pr106 106 pr107 107 pr108 108 pr109 109 :group Prog-110-119 pr110 110 pr111 111 pr112 112 pr113 113 pr114 114 pr115 115 pr116 116 pr117 117 pr118 118 pr119 119 :group Prog-120-127 pr120 120 pr121 121 pr122 122 pr123 123 pr124 124 pr125 125 pr126 126 pr127 127 ) :controllers (:group cc-0-9 cc0 0 cc1 1 cc2 2 cc3 3 cc4 4 cc5 5 cc6 6 cc7 7 cc8 8 cc9 9 :group cc-10-19 cc10 10 cc11 11 cc12 12 cc13 13 cc14 14 cc15 15 cc16 16 cc17 17 cc18 18 cc19 19 :group cc-20-29 cc20 20 cc21 21 cc22 22 cc23 23 cc24 24 cc25 25 cc26 26 cc27 27 cc28 28 cc29 29 :group cc-30-39 cc30 30 cc31 31 cc32 32 cc33 33 cc34 34 cc35 35 cc36 36 cc37 37 cc38 38 cc39 39 :group cc-40-49 cc40 40 cc41 41 cc42 42 cc43 43 cc44 44 cc45 45 cc46 46 cc47 47 cc48 48 cc49 49 :group cc-50-59 cc50 50 cc51 51 cc52 52 cc53 53 cc54 54 cc55 55 cc56 56 cc57 57 cc58 58 cc59 59 :group cc-60-69 cc60 60 cc61 61 cc62 62 cc63 63 cc64 64 cc65 65 cc66 66 cc67 67 cc68 68 cc69 69 :group cc-70-79 cc70 70 cc71 71 cc72 72 cc73 73 cc74 74 cc75 75 cc76 76 cc77 77 cc78 78 cc79 79 :group cc-80-89 cc80 80 cc81 81 cc82 82 cc83 83 cc84 84 cc85 85 cc86 86 cc87 87 cc88 88 cc89 89 :group cc-90-99 cc90 90 cc91 91 cc92 92 cc93 93 cc94 94 cc95 95 cc96 96 cc97 97 cc98 98 cc99 99 :group cc-100-109 cc100 100 cc101 101 cc102 102 cc103 103 cc104 104 cc105 105 cc106 106 cc107 107 cc108 108 cc109 109 :group cc-110-119 cc110 110 cc111 111 cc112 112 cc113 113 cc114 114 cc115 115 cc116 116 cc117 117 cc118 118 cc119 119 :group cc-120-127 cc120 120 cc121 121 cc122 122 cc123 123 cc124 124 cc125 125 cc126 126 cc127 127 :group Pedal Ped 64 Sost-Ped 66 Una-Corda 67 ) ) Quote Link to comment Share on other sites More sharing options...
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.