Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,054
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    Stephane Boussuge got a reaction from opmo in Forme étrange pour piano   
    Basic row definition 
    (setf row '(c4 e4 g4 bb4 d5 fs5 a5 gs5 f5 eb4 cs4 b4))  
    Extract some subsets from the row.
    (setf set1 (subseq row 0 6)) (setf set2 (subseq row 3 9)) (setf set3 (subseq row 6 12))  
    Chords generation from sets
    (setf couleur1 (gen-chord 12 5 5 -6 6 (gen-repeat 12 set1))) (setf couleur2 (gen-chord 12 5 5 -6 6 (gen-repeat 12 set2))) (setf couleur3 (gen-chord 12 5 5 -6 6 (gen-repeat 12 set3)))  
    Preparing tonality-series for futur mapping (create harmonics paths)
    (setf path1 (tonality-series couleur1)) (setf path2 (tonality-series couleur2)) (setf path3 (tonality-series couleur3))
    Section1
    Define ch1, a repeated generative process with GEN-LOOP
    (setf ch1 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((q h -q) (h =) (e = = = h) (w) (q =) (q e = q) (q -))) :pitch (rnd-sample 6 couleur1) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    Define un1, a repeated generative process with GEN-LOOP
    (setf un1 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((h -q) (w) (q -h))) :pitch (pitch-transpose -48 (rnd-sample 1 (melodize (rnd-sample 1 couleur1)))) :velocity '((ffff))))))))  
    Define ar1, a repeated generative process with GEN-LOOP
    (setf ar1 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (pitch-transpose (rnd-pick '(10 11 12 13 14 15 16 17)) (tonality-map (rnd-sample 1 path1) (rnd-sample 1 '((c2 e2 g2 b2 d3 fs3 c4 e4 g4 b4 d5 fs5) (c2 e2 g2 b2 d3 fs3 d3 fs3 a4 e5 b5) (fs5 d5 b4 g4 e4 c4 b4 g4 e4 c4 b3 g3 e3 c3) (fs5 d5 b4 d5 b4 g4 b4 g4 e4 g4 e4 c4 g3 c3))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    Define ar1b, a repeated generative process with GEN-LOOP
    (setf ar1b (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (filter-repeat 1 (pitch-transpose 12 (tonality-map (rnd-sample 1 path1) (rnd-sample 6 '(c4 d4 e4 f4 g4 a4 b4 c5 d5 e4 fs5))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    Assembly section1.
    (setf s1 (rnd-sample 24 (append ch1 un1 ar1 ar1b)))  
    Score FormeEtrange-s1
    (def-score FormeEtrange-s1 (:title "FormeEtrange" :composer "S.Boussuge" :copyright "Copyright © 2014 S.Boussuge" :key-signature atonal :time-signature (get-time-signature s1) :tempo 108 :layout (piano-grand-layout 'piano)) (piano :omn s1 :channel 1 :sound 'gm :program 'acoustic-grand-piano))
    Section2
    (setf ch2 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((q h -q) (h =) (e = = = h) (w) (q =) (q e = q) (q -))) :pitch (rnd-sample 6 couleur2) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    (setf un2 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((h -q) (w) (q -h))) :pitch (pitch-transpose -48 (rnd-sample 1 (melodize (rnd-sample 1 couleur2)))) :velocity '((ffff))))))))  
    (setf ar2 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (pitch-transpose (rnd-pick '(10 11 12 13 14 15 16 17)) (tonality-map (rnd-sample 1 path2) (rnd-sample 1 '((c2 e2 g2 b2 d3 fs3 c4 e4 g4 b4 d5 fs5) (c2 e2 g2 b2 d3 fs3 d3 fs3 a4 e5 b5) (fs5 d5 b4 g4 e4 c4 b4 g4 e4 c4 b3 g3 e3 c3) (fs5 d5 b4 d5 b4 g4 b4 g4 e4 g4 e4 c4 g3 c3))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    (setf ar2b (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (filter-repeat 1 (pitch-transpose 12 (tonality-map (rnd-sample 1 path2) (rnd-sample 6 '(c4 d4 e4 f4 g4 a4 b4 c5 d5 e4 fs5))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    Assembly section2.
    (setf s2 (rnd-sample 24 (append ch2 un2 ar2 ar2b)))  
    Score FormeEtrange-s2
    (def-score FormeEtrange-s2 (:title "FormeEtrange" :composer "S.Boussuge" :copyright "Copyright © 2014 S.Boussuge" :key-signature atonal :time-signature (get-time-signature s2) :tempo 108 :layout (piano-grand-layout 'piano)) (piano :omn s2 :channel 1 :sound 'gm :program 'acoustic-grand-piano))  
    Section3
    (setf ch3 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((q h -) (h =) (e = = = h) (w) (q =) (q e = q) (q -))) :pitch (rnd-sample 6 couleur3) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    (setf un3 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((h -q) (w) (q -h))) :pitch (pitch-transpose -48 (rnd-sample 1 (melodize (rnd-sample 1 couleur3)))) :velocity '((ffff))))))))  
    (setf ar3 (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (pitch-transpose (rnd-pick '(10 11 12 13 14 15 16 17)) (tonality-map (rnd-sample 1 path3) (rnd-sample 1 '((c2 e2 g2 b2 d3 fs3 c4 e4 g4 b4 d5 fs5) (c2 e2 g2 b2 d3 fs3 d3 fs3 a4 e5 b5) (fs5 d5 b4 g4 e4 c4 b4 g4 e4 c4 b3 g3 e3 c3) (fs5 d5 b4 d5 b4 g4 b4 g4 e4 g4 e4 c4 g3 c3))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    (setf ar3b (mclist (position-insert '(0) '(ped) (assemble-seq (gen-loop 24 (make-omn :length (rnd-sample 1 '((t = = = = q -) (t = = = = = = = = = = =) (s = = = = = = =) (t = = = = = e = q -))) :pitch (filter-repeat 1 (pitch-transpose 12 (tonality-map (rnd-sample 1 path3) (rnd-sample 6 '(c4 d4 e4 f4 g4 a4 b4 c5 d5 e4 fs5))))) :velocity (rnd-sample 1 '((f) (ff) (fff) (mf) (mp) (p) (pp)))))))))  
    Assembly Section 3
    (setf s3 (rnd-sample 24 (append ch3 un3 ar3 ar3b)))  
    Score FormeEtrange-s3
    (def-score FormeEtrange-s3 (:title "FormeEtrange" :composer "S.Boussuge" :copyright "Copyright © 2014 S.Boussuge" :key-signature atonal :time-signature (get-time-signature s3) :tempo 108 :layout (piano-grand-layout 'piano)) (piano :omn s3 :channel 1 :sound 'gm :program 'acoustic-grand-piano))   Final score (compile-score '(FormeEtrange-s1 FormeEtrange-s2 FormeEtrange-s3)) SB.
    FormeEtrange.opmo
  2. Thanks
    Stephane Boussuge got a reaction from JulioHerrlein in 2 videos on orchestral sections   
    The opmo file is a variant of one of the templates given with my video lesson pack:
    Designing generative orchestral templates with Opusmodus (level 2) - Composer Workshop
    WWW.COMPOSERWORKSHOP.COM Welcome to the course on "Designing Generative Orchestral Templates with Opusmodus"! In this course, we will explore the fascinating world of computer-assisted composition, specifically focusing on the powerful music composition environment known as Opusmodus. Opusmodus is a cutting-edge software tool that empowers composers, music theorists, and researchers to create... but I will share another one soon 🙂
    S.
  3. Like
    Stephane Boussuge reacted to TimotheeBoussuge in Texture 1   
    Hello everyone !
     
    Here is a small ambient piece i made using Opusmodus and VCVRack.
     
    Enjoy !
     
     
    Texture1.mp3
  4. Like
    Stephane Boussuge reacted to JulioHerrlein in 2 videos on orchestral sections   
    Really cool, Stephane ! Any chance to get the opmo files ? All the best !
  5. Like
    Stephane Boussuge reacted to Jorgalad in 2 videos on orchestral sections   
    Absolutely beautiful Stéphane!
  6. Like
    Stephane Boussuge got a reaction from jesele in 2 videos on orchestral sections   
    Here's two videos, a long one playing with live coding, generating some sections before assembly and another very short one showing evaluation and assembly for the construction of a short orchestral passage.
     
     
     
    S.
  7. Like
    Stephane Boussuge reacted to torstenanders in ADSF support for Opusmodus 3: could you please set :keep-modules to T when creating the Opusmodus delivery?   
    Oh, thanks for clarifying that for loading modules is still possible to use asdf:load-system as a workaround. Nice. I can confirm that this is working!
     
    I still get errors, e.g., when loading cluster-engine, but it is now up to me trying to get that fixed. 😉
  8. Thanks
  9. Like
    Stephane Boussuge reacted to torstenanders in ADSF support for Opusmodus 3: could you please set :keep-modules to T when creating the Opusmodus delivery?   
    I just tried using Opusmodus 3, but unfortunately there is a principle problem for me: it prevents me from loading any of me pre-existing libraries, which provide a lot of functionality already, but which I created for Opusmodus 2 (libraries like tot, cluster-engine, cluster-rules, cm-patterns etc.). It appears this is caused by the switch of Lisp compilers, and that the new version -- now based on LispWorks -- has been "delivered" without ADSF support.
     
    However, it appears this can be changed easily for Opusmodus by adjusting the parameters for creating the delivery to :KEEP-MODULES T (see docs). This is also what the error message I get is saying.
     
    > (require :tot) Error: REQUIRE was called after delivery time with module :tot. To fix this, either require the module before delivery or use :KEEP-MODULES T.   1 (abort) Return to top loop level 0. Type :b for backtrace or :c <option number> to proceed. Type :bug-form "<subject>" for a bug report template or :? for other options.  
     
    Context for those interested in tech details: ADSF is the de facto standard for loading Common Lisp applications that consist of multiple source files etc. It is also part of LispWorks (though seemingly in the outdated version 2, because LispWorks has its on system for such purposes, but that is another matter).
     
    LispWorks is a commercial Lisp compiler, and when you deliver your Lisp application to your client, you usually create a delivery of your software, which disables some of the LispWorks features. After all, LispWorks still wants to sell further copies of its development environment (in fact, it is amazing how much development functionality can be preserved in a delivery as demonstrated by Opusmodus itself).
     
    Nevertheless, when creating the delivery it is possible to opt out of disabling some of the features, e.g., with the above-mentioned parameter KEEP-MODULES, as documented by LispWorks (I also remember from PWGL times, which was also a LispWorks delivery, that it was possible to load modules with ADSF).
     
    Sorry, but it has been a few years since I have had time using Opusmodus for the last time, and at the time I have still been using version 2 (on my previous MacBook).
     
    Thanks a lot! 
    BTW: There are a bunch of hopefully helpful links in the above post, but for some reason they are not highlighted as such.
  10. Like
    Stephane Boussuge got a reaction from jesele in Pillars Of Creation   
    Hi folks,
    a short electronic track in honor of Hubble telescope discovery...
    I've used the template shared here as starting point:
    Attached the Audio file, Opmo score and VCVRack.
    Best
    S.
    PillarsOfCreation.wav PillarsOfCreation.vcv PillarsOfCreation.opmo
  11. Like
    Stephane Boussuge got a reaction from Jorgalad in Pillars Of Creation   
    Hi folks,
    a short electronic track in honor of Hubble telescope discovery...
    I've used the template shared here as starting point:
    Attached the Audio file, Opmo score and VCVRack.
    Best
    S.
    PillarsOfCreation.wav PillarsOfCreation.vcv PillarsOfCreation.opmo
  12. Thanks
    Stephane Boussuge got a reaction from opmo in Pillars Of Creation   
    Hi folks,
    a short electronic track in honor of Hubble telescope discovery...
    I've used the template shared here as starting point:
    Attached the Audio file, Opmo score and VCVRack.
    Best
    S.
    PillarsOfCreation.wav PillarsOfCreation.vcv PillarsOfCreation.opmo
  13. Like
    Stephane Boussuge reacted to opmo in Fuction for sequence polarity   
    Is this what you are looking for:
     
    (defun polarity (seq &key sum)   (do-verbose ("polarity")     (flet ((polarity-i (in-seq)              (let ((integers (if (omn-pitchp (car in-seq)) (pitch-to-midi in-seq) in-seq)))                (when (equal (length integers) 0)                  return 0                  )                (let ((accum 0) (int-pairs (interval-class integers)))                  (mapcar (lambda (x) (when (evenp x) (incf accum) )) int-pairs)                  (/ (* accum 1.0) (- (length integers) 1))                  ))))       (let ((result (loop for i in (lists! seq)                           collect (polarity-i i))))         (if sum (/ (find-sum (flatten result)) (length result)) result))))) (polarity '(1 3 6 4 2)) => (0.75) (polarity '((c4 e4 c3 ds4 b5) (c4 cs4 d4 ds4 f4))) => (0.75 0.25) (polarity '((c4 e4 c3 ds4 b5) (c4 cs4 d4 ds4 f4)) :sum t) => 0.5  
  14. Like
    Stephane Boussuge reacted to marqrdt in Fuction for sequence polarity   
    OMers,
    I wrote this function and use it in my composition work. Please feel free to steal use it. It returns the "polarity" of a sequence, defined as the ratio of consecutive uneven and even interval classes (IC) in a sequence. I use this as a way of testing if a generated sequence contains a balanced mix of even or uneven ICs.
     
    (defun polarity (in-seq)     (when (equal (length in-seq) 0)       return 0       )     (let((accum 0) (int-pairs (interval-class in-seq)))       (mapcar (lambda (x) (when (evenp x) (incf accum) )) int-pairs)       (/ (* accum 1.0) (- (length in-seq) 1))       )     )  
    Some examples:
    ;; The polarity of a chromatic scale is 0.0, as there are no even interval classes.
    OM 9 > (polarity '(0 1 2 3 4 5 6 7 8 9 10)) 0.0  
    ;; The polarity of a whole-tone scale is 1.0, as there are no uneven interval classes.
    OM 10 > (polarity '(0 4 8 2 6 10)) 1.0  
    ;; The polarity of a chromatic scale is 0.0, as there are no even interval classes.
    OM 9 > (polarity '(0 1 2 3 4 5 6 7 8 9 10)) 0.0  
    ;; The polarity of a sequence of alternating even and uneven ICs is 0.5.
    OM 14 > (polarity `(0 6 11 5 10 4 9 3 8 2 7 1 6)) interval-class  
    Right now it only works on sequences of numbers and there's no error handling. I would appreciate very much any advice on a concise and OM-ian way to extend it to accepts either integers or pitch symbols like '(c4 fs4 b4 f5 bb5).
     
    Thanks!
    Paul Marquardt
     
  15. Haha
    Stephane Boussuge reacted to jesele in Get-Time-Signature to Length-Span   
    Yup, that avoids one step, Stephane.
    I have to study the built-in functions some more.
     
    Jesper
  16. Thanks
    Stephane Boussuge got a reaction from JulioHerrlein in Get-Time-Signature to Length-Span   
    Hi Julio,
     
    you can use get-span function:
    (setf ritmos (gen-repeat 4 (gen-length '((1 2 1 2 1 1) (1 1 1 1 1 2 1) (1 -3 1 -3 2 -2 4) (-3 1 -1 1 1 1)) '(16)))) (get-span ritmos) => (1/2 1/2 1 1/2 1/2 1/2 1 1/2 1/2 1/2 1 1/2 1/2 1/2 1 1/2) S.
     
  17. Like
    Stephane Boussuge got a reaction from david in Miniature I from "Quatre miniatures en duo pour Violon et Piano"   
    Hi folks,
     
    a work in progress, a first short piece from a series of four called "Quatre miniatures en duo" for Violin and Piano.
     
    S.
     
     
    Score1V4B.mp3 Quatre miniatures en duo.pdf
  18. Like
    Stephane Boussuge got a reaction from jesele in Non linear abstraction I   
    New composition :
     
  19. Like
    Stephane Boussuge got a reaction from opmo in Non linear abstraction I   
    New composition :
     
  20. Like
    Stephane Boussuge got a reaction from Nikos in Non linear abstraction I   
    New composition :
     
  21. Thanks
    Stephane Boussuge got a reaction from JulioHerrlein in Pedal on Piano   
    musicxml-to-ly but if you use the great Lilypond Editor Frescobaldi, it is included in the menu and works very very well.

  22. Thanks
    Stephane Boussuge got a reaction from JulioHerrlein in Pedal on Piano   
    Lilypond works also very well with Opmo.
     
     
  23. Like
    Stephane Boussuge reacted to JulioHerrlein in Pedal on Piano   
    (dictum '(:butlast ped) mat)
    Worked great !
    Thanks !
  24. Thanks
    Stephane Boussuge got a reaction from JulioHerrlein in Pedal on Piano   
    You may use :butlast
  25. Like
    Stephane Boussuge got a reaction from jesele in Miniature I from "Quatre miniatures en duo pour Violon et Piano"   
    Hi folks,
     
    a work in progress, a first short piece from a series of four called "Quatre miniatures en duo" for Violin and Piano.
     
    S.
     
     
    Score1V4B.mp3 Quatre miniatures en duo.pdf
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy