Jump to content

opmo

Administrators
  • Posts

    2,889
  • Joined

  • Last visited

Everything posted by opmo

  1. pcs-rhythm (pcs &key points invert (rotate 0) (value 1/16) legato omn) (pcs-rhythm '3-11 :invert t :points 9 :omn t) => (-s = = - = = = - =) (pcs-rhythm '3-11 :invert t :points 9 :rotate 7 :omn t) => (s = - = = = = - =) (pcs-rhythm '3-11 :points 9 :legato t :omn t) => (e. q e) ;; Interval list to prime-form: (pcs-prime-form '(2 5 7 11)) => (0 3 6 8) (pcs-rhythm '(2 5 7 11) :omn t) => (s - - = - - = - = - - -) (pcs-rhythm '(2 5 7 11) :rotate 7 :omn t) => (-s = - = - - - = - - = -) (pcs-rhythm '(3-11 6-5) :points '(8 9) :omn t) => ((s - - = - - - =) (s = = = - - = = -)) (pcs-rhythm '((2 5 7 11) (1 6 3 9 2)) :omn t) => ((s - - = - - = - = - - -) (s = = - - = - - = - - -)) and (pcs-rhythm '(3-11 6-21) :points '(8 9 7 9) :rotate '(0 1 2 3) :legato '(0 1 1 0) :value '(s e s 3q) :omn t) => ((s - - = - - - =) (-e q e = q =) (-e e. e) (-3q - - = - = = = -)) (pcs-rhythm '3-11 :rotate '(0 1 2 3 4 5 6 7 8 9 10 11) :omn t) => (( s - - = - - - = - - - -) (-s = - - = - - - = - - -) (-s - = - - = - - - = - -) (-s - - = - - = - - - = -) (-s - - - = - - = - - - =) ( s - - - - = - - = - - -) (-s = - - - - = - - = - -) (-s - = - - - - = - - = -) (-s - - = - - - - = - - =) ( s - - - = - - - - = - -) (-s = - - - = - - - - = -) (-s - = - - - = - - - - =)) (pcs-rhythm '(6-z25b 6-z41b) :points '(9 8) :omn t) => ((s - = = - = - = =) (s - = - - = = =)) (pcs-rhythm '(6-z39 5-13 4-24 6-9) :rotate '(0 3 9 2) :omn t) => ((s - = = = = - - = - - -) (-s - - = = = - = - - - =) (-s = - - - = - - - = - =) (-s - = = = = - = - = - -)) There is an error in the 3rd bar, it should read: 4-24(s)R9 3rd bar: with 4-24(s)R8
  2. Works with tuplets, section and exclude. Now: value 1/16 on 1/12 = 1/24 value 1/16 on 3/20 = 1/20 etc... Here are the final function results: length-staccato (sequence &key (value 1/16) section exclude omn) (length-staccato '(q - = =) :omn t) => (s -e. -q s -e. s -e.) (length-staccato '(3q -3q 3q 3q 3q 3q) :omn t) => (3q - = = = =) (length-staccato '((3q g4 gs4 a4 tie) (3q a4 b4 c5))) => ((3q g4 gs4 a4 tie) (-3q b4 c5)) (length-staccato '(5q f4 - === 3q g4 = a4)) => (5q f4 - f4 -5h 3q g4 g4 a4) (length-staccato '((q c4 -q e d4 q e4 q f4 tie) (5q f4 - === 3q g4 = a4 tie) (q a4 tie e a4 -q q b4 tie) (q b4 -q e c5 e d5 tie) (e d5 -q e5 q f5 q g5))) => ((s c4 -e. -q s d4 - e4 -e. s f4 tie -e.) (-5q - f4 -5h 3q g4 g4 a4 tie) (-q. -q s b4 tie -e.) (-q - s c5 - d5 tie -) (-e - - s e5 -e. s f5 -e. s g5 -e.)) (length-staccato '(q e4 mp q tasto q -q q q)) => (s e4 mp -e. s e4 tasto -e. s e4 -e. -q s e4 -e. s e4 -e.) (length-staccato '((q c4 -q e d4 q e4 q f4 tie) (5q f4 - === 3q g4 = a4 tie) (q a4 tie e a4 -q q b4 tie) (q b4 -q e c5 e d5 tie) (e d5 -q e5 q f5 q g5)) :section '(0 3)) => ((s c4 -e. -q s d4 - e4 -e. s f4 tie -e.) (-5q - 5h. f4 3q g4 g4 a4 tie) (q. a4 -q b4 tie) (s b4 -e. -q s c5 - d5 tie -) (-e - - q e5 f5 g5)) Best wishes, Janusz
  3. The length-staccato is much more complicated the that. Working with lists a function needs to work with section or exclude. Anyway I have spent sometime to make it happen.
  4. 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) )
  5. If someone will get me the entire Thesaurus as a library or as a lists (patterns) then we could do something what Julio is proposing. PDF etc... won't do. Each pattern should be in OM library form of at least a lisp lists.
  6. create you own text articulations: (add-text-attributes '(nr0 "0") '(nr1 "1") )
  7. (q c4 num0 cs4 num1 d4 num2) or create you own articulations, do check the docs.
  8. In the next update you will be able to change the *audition-time-signature*: (defparameter *audition-time-signature* '(4 4)) (defparameter *audition-time-signature* '(3 4)) ... The default setup is: (defparameter *audition-time-signature* nil)
  9. The function is already there: time-point-system (setf row '(bb4 a4 gs4 as4 cs5 e5 d4 f4 g4 eb4 fs4 c5)) (time-point-system row 's :start 0) => ((h bb4 tie e. s a4 tie) (h a4 tie e e gs4) (e. bb4 cs5 q. e5 tie) (q e5 e. d4 e f4 e. g4 tie) (q g4 tie s e. eb4 q fs4 tie) (e fs4 h c5 tie e))
  10. Great solo! Excellent analysis and use of PSC and TPS.
  11. The new name is length-to-tempo - for some time
  12. Predefined functions can't be changed otherwise you would break the system. The binary-invert is sub function of binary-variant. (binary-variant '(0 1 1 0 1 0 1 1) 'i) => (1 0 0 1 0 1 0 0)
  13. (defun binary-filter (alist bin-list &key (omn t)) (let ((event-list (cond ((omn-formp alist) (single-events alist)) (t alist)))) (flatten (loop for i in event-list for j in bin-list when (= j 1) collect i else append (maybe-omn-decode omn (cond ((omn-formp i) (list (length-invert (car i)))) ((lengthp i) (neg! (omn :length (list i)))))))))) (binary-filter '(q c4 mf d4 e4 e f4 ppp g4 a4 b4) '(1 0 1 1 0 1 1)) => (q c4 mf -q q e4 mf e f4 ppp -e e a4 ppp e b4 ppp) Only one type of parameters can be decoded at a time.
  14. Please go to the Opusmodus Extension folder and remove the function 'double' form the 'Source Code.opmo'. This should fix the problem. If you get massage like: > Error: The function double is predefined by Opusmodus. it means you are using a function name (your own) which is already part of the Opusmodus System.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy