Jump to content

Stephane Boussuge

core_group_6
  • Content Count

    546
  • Joined

  • Last visited

  • Days Won

    148

Reputation Activity

  1. reaction_title_1
    Stephane Boussuge reacted to opmo in Opusmodus - second monitor   
    The upcoming release will allow you to open display-midi, display-musicxml, graphs and snippets in a separate window. For any of you using second monitor this will be great addition to your work flow.
     
    Examples:
    (display-midi 'score :display :window) (display-musicxml 'score :display :window)  
    Best,
    Janusz
  2. reaction_title_2
    Stephane Boussuge got a reaction from JulioHerrlein in HELP needed on Jazz Lines from fragments   
    Great !
    i will be fan of this function !
     
    S.
  3. reaction_title_1
    Stephane Boussuge reacted to opmo in HELP needed on Jazz Lines from fragments   
    Will be added to the next release:
    (setf pattern '((s c4 d4 e4 g4) (s c4 d4 g4 e4) (s g4 e4 c4 d4) (s c4 d4 f4 g4) (s c4 d4 g4 f4) (s g4 f4 c4 d4) (s c4 d4 g4 f4) (s g4 gb4 f4 g4) (s g4 gb4 f4 a4) (s d4 f4 g4 a4) (s a4 g4 f4 d4) (s d4 f4 g4 c5))) (pattern-series '(1 1 2 1 2 1 2) pattern) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s cs5 bb4 fs4 gs4) (s bb4 c5 eb5 f5) (s fs5 gs5 cs6 b5) (s cs6 b5 fs5 gs5) (s a5 b5 e6 d6) (s e6 eb6 d6 e6) (s f6 e6 eb6 g6) (s gs6 b6 cs7 eb7) (s f7 eb7 cs7 bb6) (s b6 d7 e7 a7)) (pattern-series '(1 1 2 1 2 1 2) pattern :variant '(p p i r ri p p)) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s cs5 bb4 fs4 gs4) (s bb4 gs4 f4 eb4) (s e4 fs4 cs4 b3) (s cs4 eb4 bb3 gs3) (s a3 b3 e4 d4) (s e4 eb4 d4 e4) (s f4 e4 eb4 g4) (s gs4 b4 cs5 eb5) (s f5 g5 a5 c6) (s cs6 gs5 fs5 eb5)) (pattern-series '(1 -1 2 -1 2 -1 2) pattern) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s b4 gs4 e4 fs4) (s gs4 bb4 cs5 eb5) (s d5 e5 a5 g5) (s a5 g5 d5 e5) (s eb5 f5 bb5 gs5) (s bb5 a5 gs5 bb5) (s b5 bb5 a5 cs6) (s c6 eb6 f6 g6) (s a6 g6 f6 d6) (s cs6 e6 fs6 b6)) (pattern-series '(1 -1 2 -1 2 -1 2) pattern :variant '(p p i r ri p p)) => ((s c4 d4 e4 g4) (s gs4 bb4 eb5 c5) (s b4 gs4 e4 fs4) (s gs4 fs4 eb4 cs4) (s c4 d4 a3 g3) (s a3 b3 fs3 e3) (s eb3 f3 bb3 gs3) (s bb3 a3 gs3 bb3) (s b3 bb3 a3 cs4) (s c4 eb4 f4 g4) (s a4 b4 cs5 e5) (s eb5 bb4 gs4 f4))  
    with random (1 2)
    (pattern-series (rnd-sample (length pattern) '(1 2)) pattern) etc...
    (pattern-series (rnd-sample (length pattern) '(13 -13)) pattern :variant '?) Best,
    Janusz
  4. reaction_title_1
    Stephane Boussuge reacted to JulioHerrlein in Different Voice for one note in a Chord   
    Dear Jorvd,
     
    Maybe this post can be useful.
    Best,
    Julio
     
     
    Or maybe this. I did it for composing a String Quartet from a piano reduction.
    It brings some ideas to work with harmony.
    Best,
    Julio
     
    ;;;HARMONY METHOD 2 ////////////////////////////////////////SEV CHORDS Basic Functions SETS/// ;;SETS 7-35 - Major Scale (setf Srm7 (pcs-transpose 9 (pcs '4-26) :pitch)) (setf S7M (pcs-transpose 4 (pcs '4-20) :pitch)) (setf Trm7 (pcs-transpose 4 (pcs '4-26) :pitch)) (setf T7M (pcs-transpose -1 (pcs '4-20) :pitch)) (setf Tam7 (pcs-transpose 11 (pcs '4-26) :pitch)) (setf D7 (pcs-transpose 11 (pcs '4-27b) :pitch)) (setf hd (pcs-transpose 9 (pcs '4-27) :pitch)) (setf F7M#11-5 (gen-rotate 2 (pcs-transpose -1 (pcs '4-8) :pitch))) ;;;Establishing a Progression (setf chordprog (chordize (list Srm7 S7M Trm7 T7M Tam7 S7M))) ;; Some repetitions and transpositions from Harmonic functions (setf chordtrp-rpt (pitch-transpose-repeat '((0) (1 2 3) (0 -1)) (chordize (list T7M S7M Trm7 T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M)))) ;;; DEFINE DROP TYPES Position of chords (setf csd '(0 0 0 0) dp2 '(0 -12 0 0) dp3 '(0 0 -12 0) dp2-4 '(0 -12 0 -12) dp2-3 '(0 -12 -12 0) ddp2-3 '(0 -24 0 -12) dp-24 '(-24 -24 -24 -24) dp-ligeti '(-24 -24 24 24)) ;;;DROP ORDER - Order of Positions (setf droplist (flatten (list dp2-4 dp2 dp2-4 dp3 dp2))) ;;;MAKING THE Actual Voicings (setf chordprogdrop (chordize-list (pitch-transpose-n droplist (sort-desc (pitch-melodize chordtrp-rpt))))) ;;;Using the voicings for the final result (setf chordprgtrp chordprogdrop) ;;; Choose how many repeats of the rhythm (setf times 1) ;;;Transform the chords into separate voices (setf voz1 (flatten (pitch-demix 1 chordprgtrp))) (setf voz2 (flatten (pitch-demix 2 chordprgtrp))) (setf voz3 (flatten (pitch-demix 3 chordprgtrp))) (setf voz4 (flatten (pitch-demix 4 chordprgtrp))) ;;; (OPTIONAL) Process AMBITUS Instrumental ou vocal//////////////////////////////////////// ;(setf vozamb1 (ambitus '(c4 c5) voz1) vozamb2 (ambitus '(f3 c5) voz2) vozamb3 (ambitus '(g3 g4) voz3) vozamb4 (ambitus '(c2 e3) voz4)) ;(setf vozamb1 (ambitus (ambitus-instrument 'flute) voz1)vozamb2 (ambitus (ambitus-instrument 'oboe) voz2) vozamb3 (ambitus (ambitus-instrument 'clarinet) voz3) vozamb4 (ambitus (ambitus-instrument 'bassoon) voz4)) (setf vozamb1 voz1 vozamb2 voz2 vozamb3 voz3 vozamb4 voz4) ;;;HOMORHYTHM (setf homorhy (gen-repeat times '(q stacc -q e stacc q e stacc h h -s s pizz s pizz s pizz)) r1 homorhy r2 homorhy r3 homorhy r4 homorhy)(setf arthomo '(stacc stacc ord stacc ord ord leg leg ord)) (setf dynhomo '(f f mf mf p< f mp< < <)) ;; THE DYNAMICS are a little crazy, but this is only to show the stuff ;;;outra possibilidade para homorritmo ;;;lista do ritmo e articulação basica (setf ritrepeat '(-s s s s s -s s s e stacc e stacc -s s ord s s -s s s s e stacc e stacc h ord -s s s s -s s s s e stacc e stacc -e q. ord e stacc e stacc e -s s ord s s -s s -h -q s s -s s h -h)) ;;;repetições (setf homorhy (gen-repeat times ritrepeat) r1 homorhy r2 homorhy r3 homorhy r4 homorhy) ;;;OMN ASSEMBLAGE da LINHA (for poliphony) (setf vozomn1 (make-omn :length r1 :pitch vozamb1 :articulation arthomo :velocity dynhomo)) (setf vozomn2 (make-omn :length r2 :pitch vozamb2 :articulation arthomo :velocity dynhomo)) (setf vozomn3 (make-omn :length r3 :pitch vozamb3 :articulation arthomo :velocity dynhomo)) (setf vozomn4 (make-omn :length r4 :pitch vozamb4 :articulation arthomo :velocity dynhomo)) ;;;--------------------------------------------------------- ;;; SCORE ;;;---------------------------------------------------------- ;;; ;;; (OPTIONAL) Time Signature Sequences (setf time-signatures '((2 4 1) (3 4 2) (4 4 1))) ;;;ONLY ONE TIME SIGNATURE ;(setf time-signatures '((4 4))) (def-score voices (:title "Piano-Red-4-Voices" :subtitle "Estudos Polifônicos" :composer "Julio-Herrlein" :key-signature 'atonal :time-signature time-signatures :tempo '("Meditativo" q 60) :layout (piano-solo-layout '(pno-rh1 pno-rh2) '(pno-lh pno-lh2))) (pno-rh1 :omn vozomn1 :channel 1 :sound 'gm :program 'Violin :volume 100) (pno-rh2 :omn vozomn2 :channel 2 :sound 'gm :program 'Violin :volume 70) (pno-lh :omn vozomn3 :channel 3 :sound 'gm :program 'Viola :volume 80) (pno-lh2 :omn vozomn4 :channel 4 :sound 'gm :program 'Cello :volume 80))  
  5. reaction_title_1
    Stephane Boussuge reacted to torstenanders in Polyphonic preview?   
    Dear Janusz, 
     
    To be clear: I do not expect that there will be a keyboard shortcut for every user added to Opusmodus. Instead, if you just share an example of code how to add a short key (and ideally a menu entry) to the Hemlock editor, that would be great.
     
    Thanks again!
     
    Best,
    Torsten 
  6. reaction_title_1
    Stephane Boussuge got a reaction from lviklund in HELP needed on Jazz Lines from fragments   
    Hi Julio, use substitute-map in place of vector mapping because if you use the vector-map function, the vector you give need to contain at least one time one of each value. if not, it is rounded internally by the function (the vector-map function determine (deduct) itself it's own bounds by the ambitus of the numbers you give to it.)
     
    So, better to do:
     
    (setf phrase1
          (pitch-transpose 
           trsp1 
           (substitute-map 
            cells-reserv 
            (gen-integer (- (length cells-reserv) 1))
            vector-ctrl-1)))
     
     
    All the best
     
    S.
  7. reaction_title_1
    Stephane Boussuge got a reaction from ydepps in Working with large pieces in multiple sections   
    All of us, as Opusmodus users, know the possibility to compose a piece with multiples sections and assemble later.
     
    We can use the ASSEMBLE-SEQ function in our piece for assemble some material and sections, but we also can use COMPILE-SCORE with multiple pre-defined scores assembled in one COMPILE-SCORE instruction this way:
     
    (compile-score '( score1 score2 score3 etc. ) ) This is a very convenient way for assembling multiple sections as multiple score.
    i put this instructions in a separate file named COMPILE-SCORE and all other section-score in files named S1, S2, S3.... 
    But when the piece grown, you can have many score files in you workspace navigator to evaluate before compiling the full score.
     
    In that case, i add a last file named LoadAll. opmo containing the following instruction for load and read in one time all my section's scores:
     
    (mapcar 'load '( "/Users/yourUserName/Opusmodus/Scores/S1.opmo" ;; S1 for section1, s2 for section2 and so on... "/Users/yourUserName/Opusmodus/Scores/S2.opmo" "/Users/yourUserName/Opusmodus/Scores/S3.opmo" "/Users/yourUserName/Opusmodus/Scores/S4.opmo" "/Users/yourUserName/Opusmodus/Scores/S5.opmo" "/Users/yourUserName/Opusmodus/Scores/S6.opmo" "/Users/yourUserName/Opusmodus/Scores/S7.opmo" "/Users/yourUserName/Opusmodus/Scores/S8.opmo" )) Attached to this post, 2 pictures of one of my workspace showing the organisation of the files.
     
    SB.


  8. reaction_title_1
    Stephane Boussuge reacted to lviklund in Multiple def-scores?   
    Andy,
    Maybe this can help.
    https://opusmodus.com/forums/topic/415-working-with-large-pieces-in-multiple-sections/
  9. reaction_title_2
    Stephane Boussuge reacted to Andy in The learning curve..thoughts   
    For me, this is a much easier journey than Max/MSP or ACToolbox or Kyma or PWGL or ...in fact any program for composition where there is a bunch of boxes, wires and annoying graphics! The idea of boxes and graphics..the visual paradigm, is it is meant to make it easier somehow.. but I now realise the reverse is true.
    If you are just dealing with text and traditional music notation as in OM,  it's really very straight forward. There is a learning 'bump' initially but then it really starts to make sense.
    I got so annoyed at Max going from 4 to 5 to 6 to 7 and the ridiculous changes in the GUI that meant I had to relearn the program every time. It was all about them. I feel Opusmodus is all about me. And that's quite a unique experience. And actually the real effort visually in Opusmodus has been put in to functionality, the IDE, which to be honest is totally unique. Thanks.
    Onward and upward. (with a few backwards I'm sure)
     
     
  10. reaction_title_1
    Stephane Boussuge reacted to opmo in Using Nigel's Book   
    indeed, it is a great introduction to parametric composition. Nigel started working on this book at the time we were working on Opusmodus documentation. It makes me very happy to hear his work is appreciated by so many, He was a great supporter and teacher of algorithmic composition which has spread over many decades. We all miss him dearly.

    Note:
    There are a few changes to some of the Opusmodus function names since the release of Nigel's book. Some of the examples might end in error.
  11. reaction_title_1
    Stephane Boussuge reacted to Andy in Using Nigel's Book   
    I just wanted to say that as a newcomer to parametric composition and Opusmodus, Nigel's book has been so helpful. I have it as a pdf in the Utilities section of Opusmodus and work through a chapter a day and copy and paste his code directly into the Composer. 
    I know Nigel wrote the tutorials, but his book sets a wider context which I have found very helpful in this beginning stage.
    Recommended!
  12. reaction_title_1
    Stephane Boussuge reacted to opmo in Opusmodus 1.3.24409   
    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.
  13. reaction_title_2
    Stephane Boussuge got a reaction from JulioHerrlein in [HELP] Removing white spaces from a list ?   
    Personally, i like very much to use the loop macro facilities, much clear and easy for me than recursion.
    Also, I am a big fan of it because it is very powerful.
     
    SB.
  14. reaction_title_1
    Stephane Boussuge reacted to opmo in Music xml import, convert to Score?   
    At the moment you can't convert musicxml file into omn score.
    But it is in our TODO list.
  15. reaction_title_2
    Stephane Boussuge got a reaction from opmo in Pluton for Orchestra   
    In memoriam Narcis Bonet who was one of my teachers.
     

    Opusmodus score attached.
    SB.
    PlutonV1-02.opmo
  16. reaction_title_2
    Stephane Boussuge got a reaction from opmo in Pluton for Orchestra   
    In memoriam Narcis Bonet who was one of my teachers.
     

    Opusmodus score attached.
    SB.
    PlutonV1-02.opmo
  17. reaction_title_2
    Stephane Boussuge got a reaction from opmo in Pluton for Orchestra   
    In memoriam Narcis Bonet who was one of my teachers.
     

    Opusmodus score attached.
    SB.
    PlutonV1-02.opmo
  18. reaction_title_2
    Stephane Boussuge got a reaction from opmo in Pluton for Orchestra   
    In memoriam Narcis Bonet who was one of my teachers.
     

    Opusmodus score attached.
    SB.
    PlutonV1-02.opmo
  19. reaction_title_1
    Stephane Boussuge reacted to Deb76 in Opusmodus 1.3 crashing   
    Hello,
    The update was carried out without problem following the instructions in particular by deleting the file Opusmodus in Documents. The upgrade has been installed on the Mojave OS 10.14.2. and it runs without any problem.I particularly appreciate in this new version the functions circle-pitch-plot, circle-rhythm-plot, xy-plot, and the pcs-rhythm. Very useful tools for musical analysis. The ivory background for rendering the scores is very nice too.
    Best,
    Didier
  20. reaction_title_1
    Stephane Boussuge reacted to opmo in Variations on Variations (2019)   
    Variations on "Webern Variationen Fuer Klavier Op.27, I" (2019) by JP
     
       
     
     
    Instrument: VSL Steinway D
  21. reaction_title_1
    Stephane Boussuge got a reaction from ydepps in Brin d'Or   
    Here's a short piece for violin solo and Strings ensemble with Fibonacci based harmony.
    Full score attached to this post fully commented but in French 🙂
     

     
    SB.
     
    BrinD'or-V04.opmo
  22. reaction_title_1
    Stephane Boussuge got a reaction from JulioHerrlein in Prelude for Piano 171218   
    Hi Julio
     
    that score use the pcs 7-33 as pitch material.
    It use also a vector mapping on "reservoirs" of motives for the music generation.
    All this was done on the fly on a draft file.
    Once done, i've used pprint for pprint the score on my finale opmo score file and add some few treatment for creating the coda.
     
    Score attached to this post.
     
    All the best
     
    S.
    prelpia171218.opmo
  23. reaction_title_1
    Stephane Boussuge got a reaction from JulioHerrlein in Prelude for Piano 171218   
    Hi Julio
     
    that score use the pcs 7-33 as pitch material.
    It use also a vector mapping on "reservoirs" of motives for the music generation.
    All this was done on the fly on a draft file.
    Once done, i've used pprint for pprint the score on my finale opmo score file and add some few treatment for creating the coda.
     
    Score attached to this post.
     
    All the best
     
    S.
    prelpia171218.opmo
  24. reaction_title_1
    Stephane Boussuge got a reaction from JulioHerrlein in Prelude for Piano 171218   
    Hi Julio
     
    that score use the pcs 7-33 as pitch material.
    It use also a vector mapping on "reservoirs" of motives for the music generation.
    All this was done on the fly on a draft file.
    Once done, i've used pprint for pprint the score on my finale opmo score file and add some few treatment for creating the coda.
     
    Score attached to this post.
     
    All the best
     
    S.
    prelpia171218.opmo
  25. reaction_title_2
    Stephane Boussuge got a reaction from JulioHerrlein in Prelude for Piano 171218   
    Here's a small Prelude for Piano.
     

     
    SB.
×