Jump to content

Opusmodus with sound synthesis package (CLM)


Recommended Posts

Since some time we are working on implementing Bill's Schottstaedt 'Synthesis package CLM' into Opusmodus.

As expected we make the CLM working with OMN form sequence or with single parameters - example below.

 

The score is using partials from The Bells of the Campanile: La Marangona.

Below you will find an audio file of the score which is rendered each time you make evaluation.

 

Best wishes to all,

Janusz

;; ---------------------------------------------------------
;; MARANGONA
;; ---------------------------------------------------------
;; Parameters

(defparameter count 50)

(setf partials1 (library 'marangona-partials 'partials nil :random 50))
(setf partials2 (library 'marangona-partials 'partials nil :random 50))
(setf partials3 (library 'marangona-partials 'partials nil :random 50))
(setf partials4 (library 'marangona-partials 'partials nil :random 50))

(setf par1 (rnd-sample count (partial :freq (flatten partials1))))
(setf par2 (rnd-sample count (partial :freq (flatten partials2))))
(setf par3 (rnd-sample count (partial :freq (flatten partials3))))
(setf par4 (rnd-sample count (partial :freq (flatten partials4))))

(defparameter freq1 (gen-divide (rnd-sample count '(2 3 4 5)) par1))
(defparameter freq2 (gen-divide (rnd-sample count '(1 2 3 4 5)) par2))
(defparameter freq3 (gen-divide (rnd-sample count '(1 2 3 1 4 5)) par3))
(defparameter freq4 (gen-divide (rnd-sample count '(1 2 3 1 4 5)) par3))

(defparameter len1 (list (length-span 42 (rnd-sample count '(w h q w)))))
(defparameter len2 (list (length-span 42 (rnd-sample count '(d h h)))))
(defparameter len3 (list (length-span 42 (rnd-sample count '(h. w q)))))
(defparameter len4 (list (length-span 42 (rnd-sample count '(d d h)))))

(do-timeline
 '( 
   len1 (---xxx-xx- ---xxx---- --x--xx--- ---x------ x-)
   len2 (---xxx-xx- ---xx-x--- --x--xx--- ---x------ x-)
   len3 (---xxx-xx- ---xx--x-- --x--xx--- ---x------ --)
   len4 (---xxx-xx- ---xx---x- --x--xx--- ---x------ --)
   )
 '(gen-pause x) :time '(w))

(defparameter dur1 (omn :length (flatten len1)))
(defparameter dur2 (omn :length (flatten len2)))
(defparameter dur3 (omn :length (flatten len3)))
(defparameter dur4 (omn :length (flatten len4)))

(defparameter amp1 (rnd-number count 0.05 0.43))
(defparameter amp2 (rnd-number count 0.05 0.43))
(defparameter amp3 (rnd-number count 0.05 0.43))
(defparameter amp4 (rnd-number count 0.05 0.43))

(defparameter env '((0 0 40 .1000 60 .2000 75 .4000 82 1 90 1 100 0)
                    (0 0 60 .1000 80 .2000 90 .4000 95 1 100 0)
                    (0 0 10 1 16 0 32 .1000 50 1 56 0 60 0 90 .3000 100 0)
                    (0 0 30 1 56 0 60 0 90 .3000 100 0)
                    (0 0 50 1 80 .3000 100 0)
                    (0 0 40 .1000 60 .2000 75 .4000 82 1 90 1 100 0)
                    (0 0 10 1 32 .1000 50 1 90 .3000 100 0)
                    (0 0 60 .1000 80 .3000 95 1 100 0)
                    (0 0 80 .1000 90 1 100 0)))

;; ---------------------------------------------------------
;; Score

(with-sound (:play nil :reverb jc-reverb
                   :scaled-to .7 :statistics t
                   :channels 2 :output "marangona-series")
  
  (fm-violin-synth dur1 freq1 amp1
                  :degree (rnd-number count 45 85)
                  :fm-index (rnd-number count 0.10 1.0)
                  :reverb-amount 0.30
                  :noise-amount (rnd-number count 0.00 0.004)
                  :amp-env (rnd-sample count env)
                  :fm1-rat (rnd-number count 0.00 6.718)
                  :fm2-rat (rnd-number count 0.00 4.414)
                  :fm3-rat (rnd-number count 0.00 1.141)  
                  :glissando-amount (rnd-number count 0.00 0.8)
                  )
  
  (fm-violin-synth dur2 freq2 amp2
                  :degree (rnd-number count 45 85)
                  :fm-index (rnd-number count 0.10 1.0)
                  :reverb-amount 0.30
                  :noise-amount (rnd-number count 0.00 0.004)
                  :amp-env (rnd-sample count env)
                  :fm1-rat (rnd-number count 0.00 4.718)
                  :fm2-rat (rnd-number count 0.00 6.414)
                  :fm3-rat (rnd-number count 0.00 1.141)
                  :glissando-amount (rnd-number count 0.00 0.8)
                  )
  
  (fm-violin-synth dur3 freq3 amp3
                  :degree (rnd-number count 45 85)
                  :fm-index (rnd-number count 0.10 1.0)
                  :reverb-amount 0.30
                  :noise-amount (rnd-number count 0.00 0.004)
                  :amp-env (rnd-sample count env)
                  :fm1-rat (rnd-number count 0.00 1.718)
                  :fm2-rat (rnd-number count 0.00 4.414)
                  :fm3-rat (rnd-number count 0.00 6.141)
                  :glissando-amount (rnd-number count 0.00 0.8)
                  )
  
  (fm-violin-synth dur4 freq4 amp4
                  :degree (rnd-number count 45 85)
                  :fm-index (rnd-number count 0.10 1.0)
                  :reverb-amount 0.30
                  :noise-amount (rnd-number count 0.00 0.004)
                  :amp-env (rnd-sample count env)
                  :fm1-rat (rnd-number count 0.00 4.718)
                  :fm2-rat (rnd-number count 0.00 6.414)
                  :fm3-rat (rnd-number count 0.00 1.141)
                  :glissando-amount (rnd-number count 0.00 0.8)
                  )
  )

 

Score with omn-form sequence:

(with-sound (:play nil :channels 2 :reverb jc-reverb
             :scaled-to .6 :statistics t :output "quartet")

  (fm-violin-omn vn1 :reverb-amount 0.20 :bpm 44)
  (fm-violin-omn vn2 :reverb-amount 0.20 :bpm 44)
  (fm-violin-omn va :reverb-amount 0.20 :bpm 44)
  (fm-violin-omn vc :reverb-amount 0.20 :bpm 44)
  )

 

 

Link to comment
Share on other sites

  • opmo unfeatured this topic
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy