Jump to content

Opusmodus 1.3.24409


Recommended Posts

Whats new:

—'Check for Updates...' menu in Opusmodus app menu (no more manual downloads). 🙂

—New CLM instruments with omn-form plist input and documentation.

 

  •   badd-synth
  •   bandedwg-synth
  •   circular-scanned-synth
  •   fm-bell-synth
  •   fm-insect-synth
  •   fm-violin-synth
  •   grani-synth
  •   piano-synth
  •   pvoc-synth
  •   scanner-synth
  •   singbowl-synth


—Additional _About documents for various function groups (Wikipedia).
 —CLM bug fixes.

 

Installation:
There are some changes to the Opusmodus user system folder and CLM implementation.
Before opening the new application you need to delete the old Opusmodus folder.
Make sure you save your personal files (scores, docs etc...) before. A good solution is to rename the Opusmodus folder first and then compress it.
After you have deleted the Opusmodus user folder you can start the new application.
At the start Opusmodus will ask you for permission to create a new user folder in your home directory, if you don’t see a window for it, it means the old folder is still on your computer. Make sure the new Opusmodus folder is installed in your home directory.

 

Hopefully this is the last time we need to delete the previous Opusmodus user folder from the home directory.

 

Best wishes,

Janusz


P.S. Few CLM examples from the "3.Howto Score/CLM/Sound Synthesis.opmo" file:

fm-bell-synth

(progn
  (defparameter count 50)
  (setf partials (library 'marangona-partials 'partials nil :random 20))
  (setf par (rnd-sample count (partial :freq (flatten partials))))
  (defparameter freq (gen-divide (rnd-sample count '(1 2 3 4 5)) par))
  (defparameter dur (list (length-span 42 (rnd-sample count '(w h q w)))))
  
  (do-timeline
   '(dur (---xx--xx- ---xx---x- --x--xx--- ---x------ x----x---))
   '(gen-pause x) :time '(w))
  
  (defparameter vel (rnd-number count 0.05 0.43))
  (defparameter dist (rnd-number count 0.5 1.0))
  (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)))
  
  (with-sound (:reverb jc-reverb :scaled-to .7)
    (fm-bell-synth dur freq vel
                   :amp-env (rnd-sample count env)
                   :index-env (rnd-sample count env)
                   :index (rnd-number count 0.3 0.9)
                   :reverb-amount 0.30
                   :distance dist))
  )


fm-insect-synth

(progn
  (defparameter par (library 'tbn-cs3-partials 'partials nil :random 12))
  (defparameter dur '(rnd-sample 12 '(-q q. h -h. -w w. d -d.)))
  (defparameter freq '(rnd-sample 12 (flatten (partial :freq par))))
  (defparameter amp '(rnd-sample 12 '(pppp ppp p mp)))
  (defparameter mod-freq-env '(0 0 40 1 95 1 100 .5))
  (defparameter mod-index-env '(0 1 25 .7 75 .78 100 1))
  (defparameter amp-env '(0 0 25 1 75 .7 100 0))
  (defparameter fm-index '(rnd-number 12 .01 .6))
  (defparameter mod-skew '(rnd-number 12 -20.0 -1.0))
  (defparameter mod-freq '(rnd-number 12 20 60))
  
  (with-sound '()
    (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env
                     (eval mod-freq) (eval mod-skew) mod-freq-env
                     500.866 mod-index-env (eval fm-index) .500)
    
    (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env
                     (eval mod-freq) (eval mod-skew) mod-freq-env
                     649.490 mod-index-env (eval fm-index) .500)
    
    (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env
                     (eval mod-freq) (eval mod-skew) mod-freq-env
                     562.087 mod-index-env (eval fm-index) .500)
    
    (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env
                     (eval mod-freq) (eval mod-skew) mod-freq-env
                     300.866 mod-index-env (eval fm-index) .500)
    )
  )


grani-synth

(progn
  (defparameter dur '(q h w d -q -h))
  (defparameter amp '(pppp p pp f mp))
  
  (with-sound (:reverb jc-reverb :reverb-channels 2)
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grains 10)
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 .1 .3 .1 1 .6)
                 :amp-envelope '(0 1 1 1)
                 :grain-density 8
                 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0)
                 :grain-envelope-end '(0 0 .01 1 .99 1 1 0)
                 :grain-envelope-transition '(0 0 .4 1 .8 0 1 0))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe" 
                 :grain-start '(0 0 1 1)
                 :amp-envelope '(0 1 1 1)
                 :grain-density 20
                 :grain-duration '(0 .003 .2 .01 1 .3))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1) 
                 :amp-envelope '(0 1 1 1)
                 :grain-density 20
                 :grain-duration '(0 .003 .2 .01 1 .3)
                 :grain-duration-limit .02)
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :amp-envelope '(0 1 1 1)
                 :grain-density 40
                 :grain-start '(0 .1 .3 .1 1 .6))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :amp-envelope '(0 1 1 1)
                 :grain-density 40
                 :grain-start '(0 .1 .3 .1 1 .6)
                 :grain-start-spread .01)
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1)
                 :grain-start-spread 0.01
                 :amp-envelope '(0 1 1 1)
                 :grain-density 40
                 :srate '(0 0 .2 0 .6 5 1 5))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1)
                 :grain-start-spread .01
                 :amp-envelope '(0 1 1 1)
                 :grain-density (rnd-sample 12 '(40 30 20))
                 :srate-base 2
                 :srate '(0 0 .2 0 .6 -1 1 -1))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1)
                 :grain-start-spread .01
                 :amp-envelope '(0 1 1 1)
                 :grain-density (rnd-sample 12 '(40 30 20))
                 :srate-linear t
                 :srate (list 0 1 .2 1 .6 (expt 2 5/12) 1 (expt 2 5/12)))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1)
                 :grain-start-spread .01
                 :amp-envelope '(0 1 1 1)
                 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0)
                 :grain-density (rnd-sample 12 '(40 30 20))
                 :grain-duration '(0 .02 1 0.1) 
                 :grain-duration-spread '(0 0 .5 .1 1 0))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-start '(0 0 1 1)
                 :grain-start-spread 0.01
                 :amp-envelope '(0 1 1 1)
                 :grain-density (rnd-sample 12 '(40 30 20))
                 :grain-degree '(0 0 1 90)
                 :grain-degree-spread 10)
    
    (grani-synth (rnd-sample 12 dur) 
                 (rnd-sample 12 amp) "oboe"
                 :grain-duration .06
                 :grain-density 20
                 :grain-density-spread 2
                 :srate 0)
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-duration .08
                 :grain-density (rnd-sample 12 '(40 30 20))
                 :grain-density-spread 2
                 :srate 5  
                 :grain-degree 0
                 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0)
                 :grain-envelope-end '(0 0 .01 1 .99 1 1 0))
    
    (grani-synth (rnd-sample 12 dur)
                 (rnd-sample 12 amp) "oboe"
                 :grain-duration .05
                 :grain-density 35
                 :grain-density-spread 3
                 :srate -5
                 :grain-degree 90
                 :srate (list 0 1 .3 1 .3 (expt 2 5/12) 1 (expt 2 5/12))))
  )


piano-synth

(progn
  (setf frames1 (library 'marangona-partials 'partials nil :random 48))
  (setf frames2 (library 'marangona-frames 'partials nil :random 48))
  (setf par1 (remove-partial frames1 :type :freq :min 27.5 :max 4186))
  (setf par2 (remove-partial frames2 :type :freq :min 27.5 :max 4186))
  
  (defparameter freq1
    (rnd-order
     (gen-collect
      (rnd-sample 24 '(3 5 6 7 8)) (partial :freq par1))))
  
  (defparameter freq2
    (rnd-order
     (gen-collect
      (rnd-sample 38  '(2 3 4)) (partial :freq par2))))
  
  (with-sound (:reverb jc-reverb)
    (piano-synth '(3e) (flatten freq1) '(.2 .3 .4)
                 :bpm 72
                 :drypedalresonancefactor .25
                 :singlestringdecayrate-table
                 '(21 -5 24.000 -5.000 36.000 -5.4
                   41.953 -5.867 48.173 -7.113 53.818 -8.016
                   59.693 -8.875 66.605 -9.434 73.056 -10.035
                   78.931 -10.293 84.000 -12.185)
                 :singlestringpole-table
                 '(21 .8 24 0.7 36.000 .6 48 .5
                   60 .3 84 .1 96 .03 108 .03)
                 :stiffnesscoefficient-table
                 '(21.000 -0.920 24.000 -0.900 36.000 -0.700
                   48.000 -0.250 60.000 -0.100 75.179 -0.040
                   82.986 -0.040 92.240 .3 96.000 .5
                   99.000 .7 108.000 .7))
    (piano-synth '(e) freq2 '(0.1 0.2 0.3)
                 :bpm 72
                 :drypedalresonancefactor .55
                 :detuningfactor-table
                 '(24 5 36 7.0 48 7.5 60 12.0 72
                   20 84 30 96 100 108 300)))
  )


pvoc-synth

(with-sound (:scaled-to .99) 
  (pvoc-synth (rnd-sample 12 '(q h e s w d -q -h))
              '(pppp pp ppp f) "marangona"
              :input-start 0
              :input-end 12
              :pitch-scaler (rnd-sample 12 '(.5 .1 .05 .8 .3 .16))
              :pitch-offset (rnd-sample 20 '(20 100 200 300 440 150 730))
              :pitch-offset-env '(0 0 20 0 50 100 70 100 80 0 100 0)
              :pitch-scaler-env '(0 1 50 2 100 1)
              :amp-env '(0 1 40 0 50 1 60 0 100 1)
              :gate 70)
  )


singbowl-synth

(progn
  (defparameter size 120)
  (defparameter partials (library 'marangona-partials 'partials nil :random 50))
  (defparameter par (rnd-sample size (partial :freq (flatten partials))))
  (defparameter freq (gen-divide (rnd-sample size '(2 3 4 5)) par))
  (defparameter length (rnd-sample size '(w h q e)))
  (defparameter velocity (rnd-number size .05 .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)))
  
  (with-sound (:reverb jc-reverb :scaled-to .7 :output "ma-partials")
    (singbowl-synth length freq velocity
                    :amp-env (rnd-sample size env)
                    :reverb-amount 0.30))
  )


fm-violin-synth

(progn
  (defparameter size 10)
  (defparameter count 50)
  (setf glc-v1
        (gen-length-cartesian
         1 3 'd '? 'w 3 (rnd-sample size '(13 11 10 8))
         '(1 2 3 4 5)))
  
  (setf glc-v2
        (gen-length-cartesian
         1 3 'd '? 'w 3 (rnd-sample size '(13 11 10 8))
         '(1 2 3 4 5)))
  
  (setf glc-va
        (gen-length-cartesian
         1 3 'd '? 'w 3 (rnd-sample size '(13 11 10 8))
         '(1 2 3 4 5)))
  
  (setf glc-vc
        (gen-length-cartesian
         1 3 'd '? 'w 3 (rnd-sample size '(13 11 10 8))
         '(1 2 3 4 5)))
  
  (setf gu-sq
        (gen-unison (list glc-v1 glc-v2 glc-va glc-vc)))
  
  (setf l-v1 (1~ gu-sq))
  (setf l-v2 (2~ gu-sq))
  (setf l-va (3~ gu-sq))
  (setf l-vc (4~ gu-sq))
  
  (setf l-max
        (first
         (sort-desc
          (list (get-count l-v1 :length :note :sum t)
                (get-count l-v2 :length :note :sum t)
                (get-count l-va :length :note :sum t)
                (get-count l-vc :length :note :sum t)))))
  
  (setf
   intervals
   '((0 7) (0 0) (11 5) (-4 5) (-5 5) (0 13) (-5 18)
     (-36 13) (-13 13) (8) (-18 7) (-1 17) (-17 17)
     (-26 13) (-27 23) (-19 19) (-23 23) (18) (0) (7)
     (-14) (13) (-23 5) (-23 2) (-2 2) (6 2) (6 5)
     (19) (-10) (-17 11) (-11 11) (-11 5) (-24 13)
     (1 14) (-14 14) (-29 1) (-1 1) (7 0) (12 6)
     (-21 7) (-7 7) (-18 0) (1 13) (0 1) (-14 13)
     (-10 5) (-14 8) (0 6) (6) (-20 6) (-5 1) (17) (1)
     (-17 5) (-1 5) (-10 16) (-12 8) (0 8) (1 11)
     (-24 4) (-18 16) (-17) (-6 6) (-18 18) (-15 3)
     (-6 31) (-2 5) (-29 6) (-6 13) (-13 6) (7 13)))
  
  (setf pcount (gen-repeat 2 (get-count l-v1 :length :note)))
  (setf gr (gen-repeat (length pcount) (list intervals)))
  (setf gm-v1 (gen-markov gr :size pcount))
  (setf gm-v2 (gen-markov gr :size pcount))
  (setf gm-va (gen-markov gr :size pcount))
  (setf gm-vc (gen-markov gr :size pcount))
  (setf im-v1 (interval-map nil (append-sublist gm-v1)))
  (setf im-v2 (interval-map nil (append-sublist gm-v2)))
  (setf im-va (interval-map nil (append-sublist gm-va)))
  (setf im-vc (interval-map nil (append-sublist gm-vc)))
  (setf s-v1 (span l-v1 im-v1))
  (setf s-v2 (span l-v2 im-v2))
  (setf s-va (span l-va im-va))
  (setf s-vc (span l-vc im-vc))
  (setf ra-v1 (rnd-octaves 'violin s-v1))
  (setf ra-v2 (rnd-octaves 'violin s-v2))
  (setf ra-va (rnd-octaves 'viola  s-va))
  (setf ra-vc (rnd-octaves 'cello  s-vc))
  (setf p-v1 (ambitus 'violin ra-v1 :type :invert))
  (setf p-v2 (ambitus 'violin ra-v2 :type :invert))
  (setf p-va (ambitus 'viola ra-va :type :invert))
  (setf p-vc (ambitus '(a2 c5) ra-vc :type :invert))
  (setf weight '(29 19 8 8 17))
  (setf vel '(0.07 0.1 0.15 0.2 0.25 0.35))
  (setf v-v1 (gen-weight l-max (mapcar 'list vel weight)))
  (setf v-v2 (gen-weight l-max (mapcar 'list vel weight)))
  (setf v-va (gen-weight l-max (mapcar 'list vel weight)))
  (setf v-vc (gen-weight l-max (mapcar 'list vel weight)))
  
  (setf vln1 (make-omn :length l-v1 :pitch p-v1 :velocity v-v1))
  (setf vln2 (make-omn :length l-v2 :pitch p-v2 :velocity v-v2))
  (setf vla (make-omn :length l-va :pitch p-va :velocity v-va))
  (setf vlc (make-omn :length l-vc :pitch p-vc :velocity v-vc))
  
  (do-timeline
   '( 
     vln1 (---x---x-- ---x-x-x-- --x--xx--- ---x------ x-)
     vln2 (---x---x-- ---x---x-- --x--xx--- ---x------ x-)
     vla  (---x---x-- ---x---x-- --x--xx--- ---x------ --)
     vlc  (---x---x-- ---x---xx- --x--xx--- ---x------ --)
     )
   '(gen-pause x) :time '(h h. w))
  
  (defparameter v1 vln1)
  (defparameter v2 vln2)
  (defparameter v3 vla)
  (defparameter v4 vlc)
  (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)))
  
  (with-sound (:reverb jc-reverb :scaled-to .7)
    (fm-violin-synth v1 v1 v1
                     :bpm 30
                     :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)
                     :glissando-amount (rnd-number count 0.00 0.8))
    
    (fm-violin-synth v2 v2 v2
                     :bpm 30
                     :degree (rnd-number count 45 85)
                     :fm-index (rnd-number count 0.03 1.0)
                     :reverb-amount 0.30
                     :noise-amount (rnd-number count 0.00 0.004)
                     :amp-env (rnd-sample count env)
                     :glissando-amount (rnd-number count 0.00 0.8))
    
    (fm-violin-synth v3 v3 v3
                     :bpm 30
                     :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)
                     :glissando-amount (rnd-number count 0.00 0.8))
    
    (fm-violin-synth v4 v4 v4
                     :bpm 30
                     :degree (rnd-number count 45 85)
                     :fm-index (rnd-number count 0.70 1.0)
                     :reverb-amount 0.30
                     :noise-amount (rnd-number count 0.00 0.004)
                     :amp-env (rnd-sample count env)
                     :glissando-amount (rnd-number count 0.00 0.8)))
  )


scanned-synth

(progn
  (defparameter size 120)
  (setf partials1 (library 'tbn-cs3-partials 'partials nil :random 64))
  (setf partials2 (library 'tbn-cs3-partials 'partials nil :random 64))
  (setf freq1 (rnd-sample size (partial :freq (flatten partials1))))
  (setf freq2 (rnd-sample size (partial :freq (flatten partials2))))
  (defparameter dur1 (rnd-sample size '(s s s s)))
  (defparameter dur2 (rnd-sample size '(q e s s s -s)))
  (defparameter amp1 (rnd-number size .005 .13))
  (defparameter amp2 (rnd-number size .005 .13))
  (defparameter waves '(1 2 3 4 5 6 7 8 9 10 11 12 13))
  
  (with-sound (:reverb jc-reverb)
    (scanned-synth
     dur1 freq1 amp1
     :wave (rnd-sample size waves) :bpm 96
     :pts (rnd-sample size '(192 256 512)))
    
    (scanned-synth
     dur2 freq2 amp2
     :wave (rnd-sample size waves) :bpm 96
     :pts (rnd-sample size '(192 256 512)))
    )
  )


circular-scanned-synth

(progn
  (defparameter size 24)
  (setf partials1 (library 'tbn-cs3-partials 'partials nil :random 50))
  (setf partials2 (library 'tbn-cs3-partials 'partials nil :random 50))
  (setf par1 (rnd-sample size (partial :freq (flatten partials1))))
  (setf par2 (rnd-sample size (partial :freq (flatten partials2))))
  (defparameter dur1 (rnd-sample size '(1 2 3 4 5)))
  (defparameter dur2 (rnd-sample size '(1 2 3 4 5)))
  (defparameter freq1 (gen-divide (rnd-sample size '(2 3 4 5)) par1))
  (defparameter freq2 (gen-divide (rnd-sample size '(2 3 4 5)) par2))
  (defparameter amp1 (rnd-number size .05 .43))
  (defparameter amp2 (rnd-number size .05 .43))
  (defparameter env
    '((0 0 40 .1000 60 .2000 75 1 90 1 100 0)
      (0 0 60 .1000 80 .2000 90 1 100 0)
      (0 0 10 1 16 0 32 .1000 50 1 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 82 1 100 0)
      (0 0 10 1 32 .1000 50 1 100 0)
      (0 0 60 .1000 80 .3000 95 1 100 0)
      (0 0 80 .1000 90 1 100 0)))
  
  (with-sound (:reverb jc-reverb)
    (circular-scanned-synth
     dur1 freq1 amp1
     :wave (rnd-sample size '(1 2 3 4))
     :recompute-samps (rnd-sample size '(14 222 32 162 211 72))
     :pts (rnd-sample size '(192 256 512))
     :cycles (rnd-sample size '(1 2 3))
     :amp-env (rnd-sample size env))
    
    (circular-scanned-synth
     dur2 freq2 amp2
     :wave (rnd-sample size '(1 2 3 4))
     :recompute-samps (rnd-sample size '(14 222 32 162 211 72))
     :pts (rnd-sample size '(192 256 512))
     :cycles (rnd-sample size '(1 2 3))
     :amp-env (rnd-sample size env))
    )
  )


badd-synth

(progn
  (defparameter size 12)
  (setf partials (library 'marangona-partials 'partials nil :random 64))
  (setf mpar (remove-partial partials :type :freq :max 1800.0))
  (setf par (partial :freq mpar))
  (setf freq '(rnd-sample size (flatten par)))
  (defparameter dur '(rnd-sample size '(1 2 3 4 5)))
  (defparameter amp '(rnd-number size .12 .33))
  
  (with-sound (:reverb jc-reverb)
    (badd-synth (eval dur) (eval freq) (eval amp))
    (badd-synth (eval dur) (eval freq) (eval amp))
    (badd-synth (eval dur) (eval freq) (eval amp))
    (badd-synth (eval dur) (eval freq) (eval amp))
    (badd-synth (eval dur) (eval freq) (eval amp))
    (badd-synth (eval dur) (eval freq) (eval amp))
    )
  )


bandedwg-synth

(progn
  (setf row (library 'vienna 'berg 'r11))
  (setf degree '(0 3 4 0 -2 -3 -1 0 -2))
  (setf mat
        (gen-eval 6 '(harmonic-progression
                      (setf degree (gen-rotate 2 degree))
                      row :relative t)))
  
  (setf end1 (harmonic-progression '(-13 -13) row :relative t))
  (setf end2 (harmonic-progression '(-12 -12) row :relative t))
  (setf end3 (harmonic-progression '(-13 -13) row :relative t))
  (setf end4 (harmonic-progression '(-12) row :relative t))
  
  (defparameter omn (make-omn
                     :length '((q) (-h))
                     :pitch (assemble-seq mat end1 end2 end3 end4)
                     :velocity '(mp)
                     :span :pitch))
  
  (with-sound (:reverb jc-reverb)
    (bandedwg-synth omn omn omn :mode 1)
    )
  )

 

As you can see it is quite easy to use CLM in OM with OMN.

More CLM instruments to come.

Link to comment
Share on other sites

  • opmo pinned, unpinned and featured this topic
  • opmo unfeatured this topic
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy