Jump to content

Group orchestration / instrumentation example

Recommended Posts


An example of group orchestration.

I first create some binary représentation of some group of instruments and apply this groups with do-timeline:

;;; Parameters
(setf size 12)

;;; Length generation
(setf len1 (euclidean-rhythm  
            (gen-repeat size '(16))
            1 12 's :type 2))

(setf len2 (euclidean-rhythm  
            (gen-repeat size '(16))
            1 12 's :type 2))

(setf len3 (euclidean-rhythm  
            (gen-repeat size '(16))
            1 12 's :type 2))

(setf len4 (euclidean-rhythm  
            (gen-repeat size '(16))
            1 12 's :type 2))

;;; Pitch generation
(setf pmat (gen-divide 8 (vector-to-pitch '(c3 c5)(gen-white-noise 32))))

(setf pch1 (pitch-transpose 12 (rnd-sample size pmat)))
(setf pch2 (pitch-transpose 8 (rnd-sample size pmat)))
(setf pch3 (pitch-transpose 0 (rnd-sample size pmat)))
(setf pch4 (pitch-transpose -24 (rnd-sample size pmat)))

;;; Global dynamics
(setf dyna (mclist (pink-noise-sample 64 '(pp p mp mf f ff))))

;;; OMN assembly
(setf line1 (make-omn
             :pitch pch1
             :length len1
             :velocity dyna))

(setf line2 (make-omn
             :pitch pch2
             :length len2
             :velocity dyna))

(setf line3 (make-omn
             :pitch pch3
             :length len3
             :velocity dyna))

(setf line4 (make-omn
             :pitch pch4
             :length len4
             :velocity dyna))

(setf flute line1)
(setf oboe line2)
(setf clarinet line3)
(setf bassoon line4)

;;; Orchestration and post processing
;; Ambitus
(setf flute (ambitus '(g4 c6) flute))
(setf oboe (ambitus '(d4 d5) oboe))
(setf clarinet (ambitus '(c4 g5) clarinet))
(setf bassoon (ambitus '(c2 g3) bassoon))

;; Re-barring
(setf master-meters '(4/4))

(setf flute (omn-to-measure flute master-meters))
(setf oboe (omn-to-measure oboe master-meters))
(setf clarinet (omn-to-measure clarinet master-meters))
(setf bassoon (omn-to-measure bassoon master-meters))

;; Mute / play
(setf olen (length flute))
;(setf otime (rnd-sample 8 '(wwww www ww w h w ww www)))
(setf otime 1) 

;; Group orchestration
(setf grp1 '(1 1 0 0))
(setf grp2 '(1 1 1 0))
(setf grp3 '(1 1 1 1))
(setf grp4 '(1 0 1 1))
(setf grp5 '(0 0 1 1))
(setf grp6 '(1 1 0 1))
(setf grp7 '(1 0 1 1))

(setf i-list '(grp1 grp2 grp3 grp4 grp5 grp6 grp7))
(setf orchestration (rnd-sample olen i-list))
(setf orch-proc1 (binary-invert (apply-eval orchestration)))

(setf instrumentation (matrix-transpose orch-proc1))

 '(flute oboe clarinet bassoon)
 '(gen-pause x) :time otime)

(setf ts (get-time-signature flute))

(def-score group-orch-example
           (:title "Group orch example "
            :composer "S.Boussuge"
            :copyright "2017 s.boussuge "
            :key-signature 'chromatic
            :time-signature ts
            :tempo 88
            :layout (list
                      (flute-layout 'flute)
                      (oboe-layout 'oboe)
                      (clarinet-layout 'clarinet)
                      (bassoon-layout 'bassoon))))
   :omn flute
   :channel 1
   :sound 'gm
   :program 'flute
   :volume 95
   :pan 70
   :controllers (91 '(52)))
   :omn oboe
   :channel 2
   :sound 'gm
   :program 'oboe
   :volume 95
   :pan 54
   :controllers (91 '(55)))
   :omn clarinet
   :channel 3
   :sound 'gm
   :program 'clarinet
   :volume 95
   :pan 60
   :controllers (91 '(57)))
   :omn bassoon
   :channel 4
   :sound 'gm
   :program 'bassoon
   :volume 95
   :pan 70
   :controllers (91 '(57)))



Group & Orchestration.opmo


Link to comment
Share on other sites

Just helping others to read this code: the key data here are the variables after the comment ;; Group orchestration. Each variable grp1, grp2, etc. set for each part in a single bar whether that part should play in the end or not. The order of those groups (bars specifying which voice is playing) is then randomised. 




Link to comment
Share on other sites


I am a bit overbooked actually and didn't took the time to comment it correctly, but you've made it :-)

Thank you Torsten !


In fact the variables grp1grp2 etc.. are like orchestration presets and can be (for example) stored in a library file to be recalled algorithmically.



Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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