Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,066
  • Joined

  • Last visited

Everything posted by Stephane Boussuge

  1. do in listener: (midi-destinations). to see what is exactly the name of your ports for Opusmodus. SB.
  2. Here's a new piece made in Opusmodus. The pdf itself is raw output of Opusmodus, I've just added Title, name etc... with PdfExpert software. Enjoy. SB. CouleursDuTempsPourFluteEtPiano.pdf
  3. yes but: (setf thema '((s c4 leg d4 leg e4 leg f4 q g4 ff stacc))) is a list of list. SB.
  4. Sorry, it was because i've deleted my messages because there was not accurate. I can't have a look now because i have a problem with my computer... Will try to have a look to your problem later. May be Janusz could have a look ? SB.
  5. Hi, here's a function i've made for my own usage and i think could be useful for others. It is a split point function which divide an OMN flux according to a list of split points. Attached, you will find the French doc of the function ;;; SPLIT-POINT ;;; SB. 2020 ;;; Fonction utile pour séparer les 2 mains pour une partie de piano ;;; renvoie une liste de listes (defun split-point (split-points omn-seq) (do-verbose ("split-point") (let* ( (spltconvert (if (numberp (car split-points)) split-points (pitch-to-integer split-points))) (spltp (gen-trim (length omn-seq) spltconvert)) (p1 (loop for sp in spltp for l in omn-seq collect (ambitus-filter `(,sp 128) l) )) (p2 (loop for sp in spltp for l in omn-seq collect (ambitus-filter `(-128 ,(- sp 1)) l) )) ) (list p1 p2)))) #| (split-point '(c4 d4) '((e a3d4 c4e4 f4c5 q g3d4 e4)(e a3d4 c4e4 f4c5 q g3d4 e4))) => (((e d4 c4e4 f4c5 q d4 e4)(q d4 e4 f4c5 d4 e4)) ((e a3 - - q g3 -)(e a3 c4 - q g3 -))) ;;; Example (setf pmat (make-scale 'c2 32 :alt '(2 1 2 3))) (setf pch (rnd-sample 128 pmat)) (setf chrd (chordize-list (gen-divide (rnd-number 8 1 4) pch))) (setf mat (length-legato (gen-filter-euclidean 8 16 4 16 chrd 's '(mf)))) (setf split (split-point '(c4) mat)) (setf piano-rh (ambitus-chord 12 (first split))) (setf piano-lh (ambitus-chord 12 (second split))) (ps 'gm :p (list piano-rh piano-lh) ) |# SB. split-point.rtfd.zip
  6. Something like that : (substitute-map '(pizz arco+ord arco+tasto arco+ponte) '(0 1 2 3) '(0 3 2 3 1 3 2 3 3 1 0 0 2 0)) => (pizz arco+ponte arco+tasto arco+ponte arco+ord arco+ponte arco+tasto arco+ponte arco+ponte arco+ord pizz pizz arco+tasto pizz) SB.
  7. Hi, i've made this function for my own usage. Sharing here if it can be useful for some others. It is a function who replace articulation by a given one on repeated notes. Best SB. ;;; OMN-REPLACE-ARTICULATION-IF-REPEAT (defun omn-replace-articulation-if-repeat (new-art omn-sequence) (do-verbose ("omn-replace-articulation-if-repeat") (let ((spn '()) (res '()) ) (progn (setf spn (get-span omn-sequence)) (setf res (loop for i from 0 to (- (length (flatten-sublist (single-events omn-sequence))) 1) collect (if (or (eq (second (nth i (flatten-sublist (single-events omn-sequence)))) (second (nth (+ 1 i) (flatten-sublist (single-events omn-sequence))))) (if (> i 0) (eq (second (nth i (flatten-sublist (single-events omn-sequence)))) (second (nth (- i 1) (flatten-sublist (single-events omn-sequence))))) ) ) (omn-replace :articulation new-art (nth i (flatten-sublist (single-events omn-sequence)))) (nth i (flatten-sublist (single-events omn-sequence))) ))) (length-span spn (flatten res)))))) ;;; EXEMPLE #| (setf mat '((s c4 p leg d4 leg e4 leg f4 q g4 f marc)(s a4 mp leg g4 leg leg f4 leg e4 leg leg leg d4 q c4 mf marc))) (omn-replace-articulation-if-repeat '(stacc) mat) => '((s c4 p leg d4 leg e4 leg f4 q g4 f marc) (s a4 mp leg g4 stacc g4 stacc f4 leg e4 stacc e4 stacc e4 stacc d4 q c4 mf marc)) |#
  8. Hi, here's an example showing many possible techniques in OM like pattern matching articulations, chaining sections, row segmentation, reservoir/cells based approach etc.... SB. ;;; ================================== ;;; SCORE 139 ;;; SB.20.03.2020 ;;; COPYRIGHT 2020 S.BOUSSUGE ;;; ================================== ;;; KEYWORDS: strings quartet pcs pitch class set sets reservoir ;;; ================================== ;;; GLOBAL PARAMETERS ;;;================== ;;; LENGTH (setf lenres1 '((w)(h h)(h -q q)(q h -q)(-q q q -q)(-q h -q))) (setf lenres2 (append lenres1 '((e e q h)(e e e e -q e e)(s s s s q -e s s q)(3q = = q -q)(q e e)(e. s q -q)))) (setf lenres3 (append lenres2 '((5q = = = = q -e s s)(s s s s s s s s q e e)))) (setf lenres4 (butlast (reverse lenres3) 3)) (setf lenres5 (butlast (reverse lenres3) 6)) (setf lenres6 (butlast (reverse lenres3) 10)) ;;; PITCH (setf pmat (rnd-row :type :pitch)) (setf set1 (subseq pmat 0 4)) (setf set2 (subseq pmat 4 9)) (setf set3 (subseq pmat 6)) (setf set4 (subseq pmat 2 10)) (setf set5 (subseq pmat 0 9)) (setf set6 (subseq pmat 4)) ;;; DYNAMIC (setf velres1 '((ppp)(pp)(p))) (setf velres2 '((pp)(p)(mp))) (setf velres3 '((p)(mp)(mf))) (setf velres4 '((mp)(mf)(f))) (setf velres5 '((mf)(f))) (setf velres6 '((f))) ;;; ARTICULATION (setf articulation-map1 '( ;; mapping on reservoir motives ((w)(ord)) ((h h)(ord ord)) ((h -q q)(ord stacc)) ((q h -q)(ord ord)) ((-q q q -q)(ord ord)) ((-q h -q)(ord)) ((e e q h)(leg ord stacc ord)) ((e e e e -q e e)(leg ord leg ord stacc stacc)) ((s s s s q -e s s q)(leg leg leg ord marc stacc stacc marc)) ((3q = = q -q)(leg leg ord ord)) ((q e e)(stacc leg ord)) ((e. s q -q)(ord stacc ord)) ((5q = = = = q -e s s)(leg leg leg leg ord stacc leg ord)) ((s s s s s s s s q e e)(leg leg leg ord leg leg leg ord stacc leg ord)) ;; complementary utils mapping ((s s s s)(leg leg leg ord)) ((5q = = = =)(leg leg leg leg ord)) ((e e)(leg ord)) ((3q = =)(leg leg ord)) )) ;;; SECTIONS SIZES (setf s1.size 12) (setf s2.size 12) (setf s3.size 12) (setf s4.size 12) (setf s5.size 12) (setf s6.size 12) ;;; SECTIONS TEMPI (setf s1.tempo `("Calme" q 72 ,s1.size)) (setf s2.tempo `("Modéré" q 92 ,s2.size)) (setf s3.tempo `("Vif" q 102 ,s3.size)) (setf s4.tempo `("Décidé" q 108 ,s4.size)) (setf s5.tempo `("Vif" q 112 ,s5.size)) (setf s6.tempo `("Vif" q 112 ,s6.size)) ;;; SECTIONS INSTRUMENTS LOCAL TRANSPOSITIONS ;;; section 1 (setf s1-i1tp (rnd-number s1.size -6 6)) (setf s1-i2tp s1-i1tp) (setf s1-i3tp s1-i1tp) (setf s1-i4tp s1-i1tp) ;;; section 2 (setf s2-i1tp (rnd-number s2.size -6 6)) (setf s2-i2tp (rnd-number s2.size -6 6)) (setf s2-i3tp s2-i1tp) (setf s2-i4tp s2-i1tp) ;;; section 3 (setf s3-i1tp (rnd-number s3.size -6 6)) (setf s3-i2tp (rnd-number s3.size -6 6)) (setf s3-i3tp (rnd-number s3.size -6 6)) (setf s3-i4tp (rnd-number s3.size -6 6)) ;;; section 4 (setf s4-i1tp (rnd-number s4.size -6 6)) (setf s4-i2tp (rnd-number s4.size -6 6)) (setf s4-i3tp (rnd-number s4.size -6 6)) (setf s4-i4tp (rnd-number s4.size -6 6)) ;;; section 5 (setf s5-i1tp (rnd-number s5.size -6 6)) (setf s5-i2tp (rnd-number s5.size -6 6)) (setf s5-i3tp (rnd-number s5.size -6 6)) (setf s5-i4tp (rnd-number s5.size -6 6)) ;;; section 6 (setf s6-i1tp (rnd-number s6.size -6 6)) (setf s6-i2tp (rnd-number s6.size -6 6)) (setf s6-i3tp (rnd-number s6.size -6 6)) (setf s6-i4tp (rnd-number s6.size -6 6)) ;;; SECTION GLOBAL TRANSPOSITIONS ;;; section 1 (setf s1-gtp (rnd-number s1.size -6 6)) ;;; section 2 (setf s2-gtp (rnd-number s2.size -6 6)) ;;; section 1 (setf s3-gtp (rnd-number s3.size -6 6)) ;;; section 1 (setf s4-gtp (rnd-number s4.size -6 6)) ;;; section 1 (setf s5-gtp (rnd-number s5.size -6 6)) ;;; section 1 (setf s6-gtp (rnd-number s6.size -6 6)) ;;; SECTION GROUP INSTRUMENTATIONS (Play/Mute system) ;;; section 1 (setf s1-i1pm (gen-trim s1.size '(-))) (setf s1-i2pm (gen-trim s1.size '(-))) (setf s1-i3pm (gen-trim s1.size '(-))) (setf s1-i4pm (gen-trim s1.size '(-))) ;;; section 2 (setf s2-i1pm (gen-trim s2.size '(-))) (setf s2-i2pm (gen-trim s2.size '(-))) (setf s2-i3pm (gen-trim s2.size '(-))) (setf s2-i4pm (gen-trim s2.size '(-))) ;;; section 3 (setf s3-i1pm (rnd-sample s3.size '(- - x))) (setf s3-i2pm (rnd-sample s3.size '(- - x))) (setf s3-i3pm (rnd-sample s3.size '(- - x))) (setf s3-i4pm (rnd-sample s3.size '(- - x))) ;;; section 4 (setf s4-i1pm (rnd-sample s4.size '(- - x))) (setf s4-i2pm (rnd-sample s4.size '(- - x))) (setf s4-i3pm (rnd-sample s4.size '(- - x))) (setf s4-i4pm (rnd-sample s4.size '(- - x))) ;;; section 5 (setf s5-i1pm (rnd-sample s5.size '(- - x))) (setf s5-i2pm (rnd-sample s5.size '(- - x))) (setf s5-i3pm (rnd-sample s5.size '(- - x))) (setf s5-i4pm (rnd-sample s5.size '(- - x))) ;;; section 6 (setf s6-i1pm (rnd-sample s6.size '(- - x))) (setf s6-i2pm (rnd-sample s6.size '(- - x))) (setf s6-i3pm (rnd-sample s6.size '(- - x))) (setf s6-i4pm (rnd-sample s6.size '(- - x))) ;;; PROCESS ;;;======== ;;; SECTION 1 ;;; =================== (setf vn1-1 (make-omn :length (setf len (rnd-sample s1.size lenres1)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set1))) :velocity (rnd-sample (length len) velres1) :articulation (pattern-map articulation-map1 len :otherwise '(ord)) )) (setf spn1 (get-span vn1-1)) (setf vn2-1 (length-span spn1 (make-omn :length (setf len (rnd-sample s1.size lenres1)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set1))) :velocity (rnd-sample (length len) velres1) :articulation (pattern-map articulation-map1 len :otherwise '(ord)) ))) (setf vla-1 (length-span spn1 (make-omn :length (setf len (rnd-sample s1.size lenres1)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set1))) :velocity (rnd-sample (length len) velres1) :articulation (pattern-map articulation-map1 len :otherwise '(ord)) ))) (setf vlc-1 (length-span spn1 (make-omn :length (setf len (rnd-sample s1.size lenres1)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set1))) :velocity (rnd-sample (length len) velres1) :articulation (pattern-map articulation-map1 len :otherwise '(ord)) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-1.itp (pitch-transpose s1-i1tp vn1-1)) (setf vn2-1.itp (pitch-transpose s1-i2tp vn2-1)) (setf vla-1.itp (pitch-transpose s1-i3tp vla-1)) (setf vlc-1.itp (pitch-transpose s1-i4tp vlc-1)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-1.gtp (pitch-transpose s1-gtp vn1-1.itp)) (setf vn2-1.gtp (pitch-transpose s1-gtp vn2-1.itp)) (setf vla-1.gtp (pitch-transpose s1-gtp vla-1.itp)) (setf vlc-1.gtp (pitch-transpose s1-gtp vlc-1.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-1.r (omn :length vn1-1.gtp)) (setf vn2-1.r (omn :length vn2-1.gtp)) (setf vla-1.r (omn :length vla-1.gtp)) (setf vlc-1.r (omn :length vlc-1.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-1.arl (pattern-map articulation-map1 vn1-1.r :otherwise '(ord))) (setf vn2-1.arl (pattern-map articulation-map1 vn2-1.r :otherwise '(ord))) (setf vla-1.arl (pattern-map articulation-map1 vla-1.r :otherwise '(ord))) (setf vlc-1.arl (pattern-map articulation-map1 vlc-1.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-1.a (omn-replace :articulation vn1-1.arl vn1-1.gtp)) (setf vn2-1.a (omn-replace :articulation vn2-1.arl vn2-1.gtp)) (setf vla-1.a (omn-replace :articulation vla-1.arl vla-1.gtp)) (setf vlc-1.a (omn-replace :articulation vlc-1.arl vlc-1.gtp)) ;;; SECTION OUTPUT (setf vn1-1e vn1-1.a) (setf vn2-1e vn2-1.a) (setf vla-1e vla-1.a) (setf vlc-1e vlc-1.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-1e ,s1-i1pm vn2-1e ,s1-i2pm vla-1e ,s1-i3pm vlc-1e ,s1-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SECTION 2 ;;; =================== (setf vn1-2 (make-omn :length (setf len (rnd-sample s2.size lenres2)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set2))) :velocity (rnd-sample (length len) velres2) )) (setf spn2 (get-span vn1-2)) (setf vn2-2 (length-span spn2 (make-omn :length (setf len (rnd-sample s2.size lenres2)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set2))) :velocity (rnd-sample (length len) velres2) ))) (setf vla-2 (length-span spn2 (make-omn :length (setf len (rnd-sample s2.size lenres2)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set2))) :velocity (rnd-sample (length len) velres2) ))) (setf vlc-2 (length-span spn2 (make-omn :length (setf len (rnd-sample s2.size lenres2)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set2))) :velocity (rnd-sample (length len) velres2) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-2.itp (pitch-transpose s2-i1tp vn1-2)) (setf vn2-2.itp (pitch-transpose s2-i2tp vn2-2)) (setf vla-2.itp (pitch-transpose s2-i3tp vla-2)) (setf vlc-2.itp (pitch-transpose s2-i4tp vlc-2)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-2.gtp (pitch-transpose s2-gtp vn1-2.itp)) (setf vn2-2.gtp (pitch-transpose s2-gtp vn2-2.itp)) (setf vla-2.gtp (pitch-transpose s2-gtp vla-2.itp)) (setf vlc-2.gtp (pitch-transpose s2-gtp vlc-2.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-2.r (omn :length vn1-2.gtp)) (setf vn2-2.r (omn :length vn2-2.gtp)) (setf vla-2.r (omn :length vla-2.gtp)) (setf vlc-2.r (omn :length vlc-2.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-2.arl (pattern-map articulation-map1 vn1-2.r :otherwise '(ord))) (setf vn2-2.arl (pattern-map articulation-map1 vn2-2.r :otherwise '(ord))) (setf vla-2.arl (pattern-map articulation-map1 vla-2.r :otherwise '(ord))) (setf vlc-2.arl (pattern-map articulation-map1 vlc-2.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-2.a (omn-replace :articulation vn1-2.arl vn1-2.gtp)) (setf vn2-2.a (omn-replace :articulation vn2-2.arl vn2-2.gtp)) (setf vla-2.a (omn-replace :articulation vla-2.arl vla-2.gtp)) (setf vlc-2.a (omn-replace :articulation vlc-2.arl vlc-2.gtp)) ;;; SECTION OUTPUT (setf vn1-2e vn1-2.a) (setf vn2-2e vn2-2.a) (setf vla-2e vla-2.a) (setf vlc-2e vlc-2.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-2e ,s2-i1pm vn2-2e ,s2-i2pm vla-2e ,s2-i3pm vlc-2e ,s2-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SECTION 3 ;;; =================== (setf vn1-3 (make-omn :length (setf len (rnd-sample s3.size lenres3)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set3))) :velocity (rnd-sample (length len) velres3) )) (setf spn3 (get-span vn1-3)) (setf vn2-3 (length-span spn3 (make-omn :length (setf len (rnd-sample s3.size lenres3)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set3))) :velocity (rnd-sample (length len) velres3) ))) (setf vla-3 (length-span spn3 (make-omn :length (setf len (rnd-sample s3.size lenres3)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set3))) :velocity (rnd-sample (length len) velres3) ))) (setf vlc-3 (length-span spn3 (make-omn :length (setf len (rnd-sample s3.size lenres3)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set3))) :velocity (rnd-sample (length len) velres3) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-3.itp (pitch-transpose s3-i1tp vn1-3)) (setf vn2-3.itp (pitch-transpose s3-i2tp vn2-3)) (setf vla-3.itp (pitch-transpose s3-i3tp vla-3)) (setf vlc-3.itp (pitch-transpose s3-i4tp vlc-3)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-3.gtp (pitch-transpose s3-gtp vn1-3.itp)) (setf vn2-3.gtp (pitch-transpose s3-gtp vn2-3.itp)) (setf vla-3.gtp (pitch-transpose s3-gtp vla-3.itp)) (setf vlc-3.gtp (pitch-transpose s3-gtp vlc-3.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-3.r (omn :length vn1-3.gtp)) (setf vn2-3.r (omn :length vn2-3.gtp)) (setf vla-3.r (omn :length vla-3.gtp)) (setf vlc-3.r (omn :length vlc-3.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-3.arl (pattern-map articulation-map1 vn1-3.r :otherwise '(ord))) (setf vn2-3.arl (pattern-map articulation-map1 vn2-3.r :otherwise '(ord))) (setf vla-3.arl (pattern-map articulation-map1 vla-3.r :otherwise '(ord))) (setf vlc-3.arl (pattern-map articulation-map1 vlc-3.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-3.a (omn-replace :articulation vn1-3.arl vn1-3.gtp)) (setf vn2-3.a (omn-replace :articulation vn2-3.arl vn2-3.gtp)) (setf vla-3.a (omn-replace :articulation vla-3.arl vla-3.gtp)) (setf vlc-3.a (omn-replace :articulation vlc-3.arl vlc-3.gtp)) ;;; SECTION OUTPUT (setf vn1-3e vn1-3.a) (setf vn2-3e vn2-3.a) (setf vla-3e vla-3.a) (setf vlc-3e vlc-3.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-3e ,s3-i1pm vn2-3e ,s3-i2pm vla-3e ,s3-i3pm vlc-3e ,s3-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SECTION 4 ;;; =================== (setf vn1-4 (make-omn :length (setf len (rnd-sample s4.size lenres4)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 12 set4))) :velocity (rnd-sample (length len) velres4) )) (setf spn4 (get-span vn1-4)) (setf vn2-4 (length-span spn4 (make-omn :length (setf len (rnd-sample s4.size lenres4)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set4))) :velocity (rnd-sample (length len) velres4) ))) (setf vla-4 (length-span spn4 (make-omn :length (setf len (rnd-sample s4.size lenres4)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set4))) :velocity (rnd-sample (length len) velres4) ))) (setf vlc-4 (length-span spn4 (make-omn :length (setf len (rnd-sample s4.size lenres4)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set4))) :velocity (rnd-sample (length len) velres4) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-4.itp (pitch-transpose s4-i1tp vn1-4)) (setf vn2-4.itp (pitch-transpose s4-i2tp vn2-4)) (setf vla-4.itp (pitch-transpose s4-i3tp vla-4)) (setf vlc-4.itp (pitch-transpose s4-i4tp vlc-4)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-4.gtp (pitch-transpose s4-gtp vn1-4.itp)) (setf vn2-4.gtp (pitch-transpose s4-gtp vn2-4.itp)) (setf vla-4.gtp (pitch-transpose s4-gtp vla-4.itp)) (setf vlc-4.gtp (pitch-transpose s4-gtp vlc-4.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-4.r (omn :length vn1-4.gtp)) (setf vn2-4.r (omn :length vn2-4.gtp)) (setf vla-4.r (omn :length vla-4.gtp)) (setf vlc-4.r (omn :length vlc-4.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-4.arl (pattern-map articulation-map1 vn1-4.r :otherwise '(ord))) (setf vn2-4.arl (pattern-map articulation-map1 vn2-4.r :otherwise '(ord))) (setf vla-4.arl (pattern-map articulation-map1 vla-4.r :otherwise '(ord))) (setf vlc-4.arl (pattern-map articulation-map1 vlc-4.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-4.a (omn-replace :articulation vn1-4.arl vn1-4.gtp)) (setf vn2-4.a (omn-replace :articulation vn2-4.arl vn2-4.gtp)) (setf vla-4.a (omn-replace :articulation vla-4.arl vla-4.gtp)) (setf vlc-4.a (omn-replace :articulation vlc-4.arl vlc-4.gtp)) ;;; SECTION OUTPUT (setf vn1-4e vn1-4.a) (setf vn2-4e vn2-4.a) (setf vla-4e vla-4.a) (setf vlc-4e vlc-4.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-4e ,s4-i1pm vn2-4e ,s4-i2pm vla-4e ,s4-i3pm vlc-4e ,s4-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SECTION 5 ;;; =================== (setf vn1-5 (make-omn :length (setf len (rnd-sample s5.size lenres5)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 12 set5))) :velocity (rnd-sample (length len) velres5) )) (setf spn5 (get-span vn1-5)) (setf vn2-5 (length-span spn5 (make-omn :length (setf len (rnd-sample s5.size lenres5)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 12 set5))) :velocity (rnd-sample (length len) velres5) ))) (setf vla-5 (length-span spn5 (make-omn :length (setf len (rnd-sample s5.size lenres5)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set5))) :velocity (rnd-sample (length len) velres5) ))) (setf vlc-5 (length-span spn5 (make-omn :length (setf len (rnd-sample s5.size lenres5)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set5))) :velocity (rnd-sample (length len) velres5) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-5.itp (pitch-transpose s5-i1tp vn1-5)) (setf vn2-5.itp (pitch-transpose s5-i2tp vn2-5)) (setf vla-5.itp (pitch-transpose s5-i3tp vla-5)) (setf vlc-5.itp (pitch-transpose s5-i4tp vlc-5)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-5.gtp (pitch-transpose s5-gtp vn1-5.itp)) (setf vn2-5.gtp (pitch-transpose s5-gtp vn2-5.itp)) (setf vla-5.gtp (pitch-transpose s5-gtp vla-5.itp)) (setf vlc-5.gtp (pitch-transpose s5-gtp vlc-5.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-5.r (omn :length vn1-5.gtp)) (setf vn2-5.r (omn :length vn2-5.gtp)) (setf vla-5.r (omn :length vla-5.gtp)) (setf vlc-5.r (omn :length vlc-5.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-5.arl (pattern-map articulation-map1 vn1-5.r :otherwise '(ord))) (setf vn2-5.arl (pattern-map articulation-map1 vn2-5.r :otherwise '(ord))) (setf vla-5.arl (pattern-map articulation-map1 vla-5.r :otherwise '(ord))) (setf vlc-5.arl (pattern-map articulation-map1 vlc-5.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-5.a (omn-replace :articulation vn1-5.arl vn1-5.gtp)) (setf vn2-5.a (omn-replace :articulation vn2-5.arl vn2-5.gtp)) (setf vla-5.a (omn-replace :articulation vla-5.arl vla-5.gtp)) (setf vlc-5.a (omn-replace :articulation vlc-5.arl vlc-5.gtp)) ;;; SECTION OUTPUT (setf vn1-5e vn1-5.a) (setf vn2-5e vn2-5.a) (setf vla-5e vla-5.a) (setf vlc-5e vlc-5.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-5e ,s5-i1pm vn2-5e ,s5-i2pm vla-5e ,s5-i3pm vlc-5e ,s5-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SECTION 6 ;;; =================== (setf vn1-6 (make-omn :length (setf len (rnd-sample s6.size lenres6)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set6))) :velocity (rnd-sample (length len) velres6) )) (setf spn6 (get-span vn1-6)) (setf vn2-6 (length-span spn6 (make-omn :length (setf len (rnd-sample s6.size lenres6)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose 0 set6))) :velocity (rnd-sample (length len) velres6) ))) (setf vla-6 (length-span spn6 (make-omn :length (setf len (rnd-sample s6.size lenres6)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -12 set6))) :velocity (rnd-sample (length len) velres6) ))) (setf vlc-6 (length-span spn6 (make-omn :length (setf len (rnd-sample s6.size lenres6)) :pitch (span len (rnd-sample (length (flatten len)) (pitch-transpose -24 set6))) :velocity (rnd-sample (length len) velres6) ))) ;;; SECTION LOCAL INSTRUMENTS TRANSPOSITIONS (setf vn1-6.itp (pitch-transpose s6-i1tp vn1-6)) (setf vn2-6.itp (pitch-transpose s6-i2tp vn2-6)) (setf vla-6.itp (pitch-transpose s6-i3tp vla-6)) (setf vlc-6.itp (pitch-transpose s6-i4tp vlc-6)) ;;; SECTION GLOBAL TRANSPOSITION (setf vn1-6.gtp (pitch-transpose s6-gtp vn1-6.itp)) (setf vn2-6.gtp (pitch-transpose s6-gtp vn2-6.itp)) (setf vla-6.gtp (pitch-transpose s6-gtp vla-6.itp)) (setf vlc-6.gtp (pitch-transpose s6-gtp vlc-6.itp)) ;;; GET THE LENGTH FOR APPLYING PATTERN MATCHING ARTICULATIONS PROCESS (setf vn1-6.r (omn :length vn1-6.gtp)) (setf vn2-6.r (omn :length vn2-6.gtp)) (setf vla-6.r (omn :length vla-6.gtp)) (setf vlc-6.r (omn :length vlc-6.gtp)) ;;; GENERATE ARTICULATIONS LIST BASED ON PATTERN MATCHING (setf vn1-6.arl (pattern-map articulation-map1 vn1-6.r :otherwise '(ord))) (setf vn2-6.arl (pattern-map articulation-map1 vn2-6.r :otherwise '(ord))) (setf vla-6.arl (pattern-map articulation-map1 vla-6.r :otherwise '(ord))) (setf vlc-6.arl (pattern-map articulation-map1 vlc-6.r :otherwise '(ord))) ;;; ADDING(REPLACING) ARTICULATIONS (setf vn1-6.a (omn-replace :articulation vn1-6.arl vn1-6.gtp)) (setf vn2-6.a (omn-replace :articulation vn2-6.arl vn2-6.gtp)) (setf vla-6.a (omn-replace :articulation vla-6.arl vla-6.gtp)) (setf vlc-6.a (omn-replace :articulation vlc-6.arl vlc-6.gtp)) ;;; SECTION OUTPUT (setf vn1-6e vn1-6.a) (setf vn2-6e vn2-6.a) (setf vla-6e vla-6.a) (setf vlc-6e vlc-6.a) ;;; PLAY/MUTE SYSTEM (do-timeline `( vn1-6e ,s6-i1pm vn2-6e ,s6-i2pm vla-6e ,s6-i3pm vlc-6e ,s6-i4pm ) '(gen-pause x) ) ;;; ==================== ;;; SCORING ;;; ======= ;; THIS PARTICULAR DISPOSITION ALLOW TO COMMENT SOME SECTION LIKE HERE SECTION 5 (AS AN EXAMPLE) (setf vn1 (ambitus 'violin (assemble-seq vn1-1e vn1-2e vn1-3e vn1-4e ;vn1-5e vn1-6e ))) (setf vn2 (ambitus 'violin (assemble-seq vn2-1e vn2-2e vn2-3e vn2-4e ;vn2-5e vn2-6e ))) (setf vla (ambitus 'viola (assemble-seq vla-1e vla-2e vla-3e vla-4e ;vla-5e vla-6e ))) (setf vlc (ambitus 'violoncello (assemble-seq vlc-1e vlc-2e vlc-3e vlc-4e ;vlc-5e vlc-6e ))) (setf tempo-events (list s1.tempo s2.tempo s3.tempo s4.tempo ;s5.tempo s6.tempo )) (ps 'gm :sq (list vn1 vn2 vla vlc) :tempo tempo-events :time-signature (get-time-signature vn1) :flexible-clef nil ) ;;; =============== END OF FILE ================ SB. Score139.opmo
  9. Here i'm applying in bar 3 soprano part the method t-3 to event 6 and event 7: (setf p01 '((-e e4 stacc g4 stacc b4 stacc s e4 fs4 leg e g4 leg fs4 b3 leg))) (setf p02 '(((leg -e b5 b5 a5 a5 eb5 q eb5 leg)))) (setf voices (counterpoint (list p01 p02) '( ((1 -) :methods (- -) :polyphony (7 o)) ((2 1) :methods (t-12 -) :polyphony (7 o)) ((2 1) :methods (((t-3 1 (6 7)) t-5) r) :polyphony (7 ?)) ))) (ps 'gm :fl (list (assemble-voices 1 voices)) :cl (list (assemble-voices 2 voices)) :tempo '(80) :time-signature '(4 4) :start 1) SB.
  10. You can also try this for fun: (setf scale '(c4 d4 e4 f4 g4 a4)) (gen-euclidean-omn 24 16 1 16 scale 's '(mf)) SB.
  11. You can also use LENGTH-DIMINUTION or LENGTH-AUGMENTATION functions. SB.
  12. This ressource is fantastically useful for me, it allow me to use Opusmodus in conjonction with Sibelius with Vienna Ensemble as sound server for both of them. The workflow is very good because i'm using only one Vienna Ensemble big template with 200 instruments (with samples unloaded, they just load when midi) and i can open in Sibelius what i did in OM and drive this Vienna template from OM or Sibelius, adding instruments, testing some orchestration etc... Thanks a lot Wim !! Stéphane
  13. I've made a video showing a prelude composition from originally midi imported material: https://opusmodus.com/forums/videos/view-28-composing-a-piano-prelude/ As Julio mentionned before, Unfold is also another powerful way for variations. Happy Opusmodusing !! Stéphane
  14. ;;; Classical Accompaniment Exemple ;;;--------------------------------------------------------- ;;; Parameters ;;;--------------------------------------------------------- ;;; Motif definition (setf mtf1 '((s c5 leg g5 leg e6 leg g5 c5 leg g5 leg e6 leg g5))) (setf mtf2 (pitch-transpose 4 mtf1)) (setf mtf3 '((-q e5))) (setf mtf4 '((-q g4c5))) (setf mtf5 '((q c2 -))) ;;; Chords definition (setf chords (library 'harmoprog1 'minor-4vx 'prog2)) ;;; Ostinati (setf ost1 (gen-repeat (length chords) mtf1)) (setf ost2 (gen-repeat (length chords) mtf2)) (setf ost3 (gen-repeat (length chords) mtf3)) (setf ost4 (gen-repeat (length chords) mtf4)) (setf ost5 (gen-repeat (length chords) mtf5)) ;;; Tonality-map series (setf tm-path (tonality-series chords)) ;;; Here we apply the map 'tm-path' into arpegio sequence. (setf ost1.map (tonality-map tm-path ost1)) (setf ost2.map (tonality-map tm-path ost2)) ;;; Here we apply our library chords into chord sequence. ;;; The harmonic-path preserves the voice leading. (setf ost3.map (harmonic-path chords ost3)) (setf ost4.map (harmonic-path chords ost4)) (setf ost5.map (harmonic-path chords ost5)) (setf violin1 (ambitus '(g3 c7) ost2.map)) (setf violin2 (ambitus '(g3 c6) ost1.map)) (setf viola (ambitus '(c3 e4) ost3.map)) (setf violoncello (ambitus-chord 12 (pitch-transpose -12 ost4.map))) (setf bass ost5.map) ;;;--------------------------------------------------------- ;;; Score and Layout ;;;--------------------------------------------------------- (def-score Classical-accomp (:title "Classical accompaniment example" :composer "S.Boussuge" :copyright "Copyright © 2018 s.boussuge" :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 108 :layout (bracket-group (violin-layout 'violin1 :name "Violin-1") (violin-layout 'violin2 :name "Violin-2") (viola-layout 'viola) (violoncello-layout 'violoncello) (contrabass-layout 'bass) ) ) (violin1 :omn violin1 :channel 1 :sound 'gm :program 'String-Ensemble-1 :volume 100 :pan 48 :controllers (91 '(68)) ) (violin2 :omn violin2 :channel 2 :sound 'gm :program 'String-Ensemble-1 :volume 100 :pan 48 :controllers (91 '(68)) ) (viola :omn viola :channel 3 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 64 :controllers (91 '(68)) ) (violoncello :omn violoncello :channel 4 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 80 :controllers (91 '(68)) ) (bass :omn bass :channel 5 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 80 :controllers (91 '(68)) ) )
  15. For searching the doc for a function in composer panel, just put the cursor on it and hit ctrl + Tab. SB.
  16. You can see the correct shortcuts in Menu "Outils" Attached to this post a short video. SB. ExempleEvaluation.mp4
  17. Si vous le souhaitez, je peux vous donner un cours en Français par Skype. https://opusmodus.com/forums/lessons/ SB.
  18. For woodwinds trio and string quartet. SB.
  19. A short piece as an Hommage to Bruno Maderna. This piece was presented in Venice Italy for the "Musica Domani" in 7th December 2019. It use a lot of new functionalities from the upcoming Opusmodus Version 1.4 . SB.
  20. you have many way to do that in OM, have a look to pattern-map for example or substitute-map... SB.
  21. I wrote this example for one of my student few years ago. I don't know if it could help you but just in case.... Best wishes Stéphane Spectral-remap1.opmo
  22. midi-to-omn will be super useful for me, thanks ! Stéphane
  23. Hi, A short study about some harmonic procedures and unfold set simple usage. SB. Score: MelodieFlutePiano280819GM.opmo
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy