Jump to content

Stephane Boussuge

Moderators
  • Content count

    416
  • Joined

  • Last visited

  • Days Won

    104

Everything posted by Stephane Boussuge

  1. Logic now from at leat one year use multiple core when bussing via live instruments but may be not with armed tracks but sure with the configuration i've shared long time ago on this Forum: All the best. S.
  2. Pcs: how to retrieve inverted forms from this function ?

    I agree totally !!! S.
  3. Group orchestration / instrumentation example

    I am a bit overbooked actually and didn't took the time to comment it correctly, but you've made it :-) Thank you Torsten ! In fact the variables grp1, grp2 etc.. are like orchestration presets and can be (for example) stored in a library file to be recalled algorithmically. S.
  4. Hi, An example of group orchestration. I first create some binary représentation of some group of instruments and apply this groups with do-timeline: ;;; Parameters (setf size 12) ;;; Length generation (setf len1 (euclidean-rhythm (gen-repeat size '(16)) 1 12 's :type 2)) (setf len2 (euclidean-rhythm (gen-repeat size '(16)) 1 12 's :type 2)) (setf len3 (euclidean-rhythm (gen-repeat size '(16)) 1 12 's :type 2)) (setf len4 (euclidean-rhythm (gen-repeat size '(16)) 1 12 's :type 2)) ;;; Pitch generation (setf pmat (gen-divide 8 (vector-to-pitch '(c3 c5)(gen-white-noise 32)))) (setf pch1 (pitch-transpose 12 (rnd-sample size pmat))) (setf pch2 (pitch-transpose 8 (rnd-sample size pmat))) (setf pch3 (pitch-transpose 0 (rnd-sample size pmat))) (setf pch4 (pitch-transpose -24 (rnd-sample size pmat))) ;;; Global dynamics (setf dyna (mclist (pink-noise-sample 64 '(pp p mp mf f ff)))) ;;; OMN assembly (setf line1 (make-omn :pitch pch1 :length len1 :velocity dyna)) (setf line2 (make-omn :pitch pch2 :length len2 :velocity dyna)) (setf line3 (make-omn :pitch pch3 :length len3 :velocity dyna)) (setf line4 (make-omn :pitch pch4 :length len4 :velocity dyna)) (setf flute line1) (setf oboe line2) (setf clarinet line3) (setf bassoon line4) ;;; Orchestration and post processing ;; Ambitus (setf flute (ambitus '(g4 c6) flute)) (setf oboe (ambitus '(d4 d5) oboe)) (setf clarinet (ambitus '(c4 g5) clarinet)) (setf bassoon (ambitus '(c2 g3) bassoon)) ;; Re-barring (setf master-meters '(4/4)) (setf flute (omn-to-measure flute master-meters)) (setf oboe (omn-to-measure oboe master-meters)) (setf clarinet (omn-to-measure clarinet master-meters)) (setf bassoon (omn-to-measure bassoon master-meters)) ;; Mute / play (setf olen (length flute)) ;(setf otime (rnd-sample 8 '(wwww www ww w h w ww www))) (setf otime 1) ;; Group orchestration (setf grp1 '(1 1 0 0)) (setf grp2 '(1 1 1 0)) (setf grp3 '(1 1 1 1)) (setf grp4 '(1 0 1 1)) (setf grp5 '(0 0 1 1)) (setf grp6 '(1 1 0 1)) (setf grp7 '(1 0 1 1)) (setf i-list '(grp1 grp2 grp3 grp4 grp5 grp6 grp7)) (setf orchestration (rnd-sample olen i-list)) (setf orch-proc1 (binary-invert (apply-eval orchestration))) (setf instrumentation (matrix-transpose orch-proc1)) (do-timeline2 '(flute oboe clarinet bassoon) instrumentation '(gen-pause x) :time otime) (setf ts (get-time-signature flute)) (def-score group-orch-example (:title "Group orch example " :composer "S.Boussuge" :copyright "2017 s.boussuge " :key-signature 'chromatic :time-signature ts :tempo 88 :layout (list (bracket-group (flute-layout 'flute) (oboe-layout 'oboe) (clarinet-layout 'clarinet) (bassoon-layout 'bassoon)))) (flute :omn flute :channel 1 :sound 'gm :program 'flute :volume 95 :pan 70 :controllers (91 '(52))) (oboe :omn oboe :channel 2 :sound 'gm :program 'oboe :volume 95 :pan 54 :controllers (91 '(55))) (clarinet :omn clarinet :channel 3 :sound 'gm :program 'clarinet :volume 95 :pan 60 :controllers (91 '(57))) (bassoon :omn bassoon :channel 4 :sound 'gm :program 'bassoon :volume 95 :pan 70 :controllers (91 '(57))) ) SB. Group & Orchestration.opmo
  5. Randomize Materials?

    i will think about this idea. All the best ! S.
  6. Randomize Materials?

    ;; Number of bars (setf size 12) ;;; Random weighted choice of pitches with emphasis on d4 gs4 abd as4 (setf pitch (gen-weight size '((c4 1)(cs4 1)(d4 2)(ds4 1)(e4 1)(f4 1)(fs4 1)(g4 1) (gs4 2)(a4 1)(as4 2)))) ;;; Slightly varied rythm pattern based on a random choice ;;; of rythmic cells varied by rest positionning. ;; rythmic cells definition (setf rcells '((s s s s q e e q)(e e e e e e e e)(s s e s s e s s s s s s s s))) ;; random choice of rythmic cells (setf rchoice (rnd-sample size rcells)) ;; Length definition, adding some rests (setf len (length-weight rchoice :weight '(3 1))) ;;; Pitch and length assembly into an omn phrase: (setf phrase1 (make-omn :pitch pitch :length len )) Happy Opusmodus exploration ! SB.
  7. gen-repeat w. omn lists

    You may use the gen-repeat-seq function for the repetitions. You can have a look also to omn-to-measure , it could be useful also in what you doing. Cheers S.
  8. Generation of harmonic structures with Markov process

    Quartal example: (harmonic-progression '(1 2 3 4 5 6 7) '(d4 natural-minor) :size 4 :step 3 :base 1 ) Another example more complex: (setf row (rnd-row :type :pitch :transpose 2)) (setf chords1 (harmonic-progression (rnd-number 24 -6 6) row :size (rnd-sample 24 '(3 4 5 6)) :step (rnd-sample 24 '(1 2 3 (2 3)(1 3))) )) S.
  9. Here is an example of generation of harmonic progression with Opusmodus using chords rules defined with a transition table. The technique presented here uses the concept of tonal degrees, but it is important to note that as you will see later in this article, this concept can be pushed quite far and quite outside the traditional tonal system. First, we define some transition rules from degree to degree: (setf transition '((1 (4 1) (5 1) (6 2)) (2 (5 2) (4 1)) (3 (4 1)) (4 (5 1) (2 1)) (5 (1 3) (6 2) (4 1)) (6 (4 1)) (7 (1 1) (6 1)))) So here is a transition rule saying a 1st degree will be 2 times more likely to be followed by a sixth degree (1 (6 2)) as a 4th or 5th (1 (4 1) (5 1) ). A second degree will be most likely followed by a 5th degree (2 (5 2) than a 4th (2 (4 1)) We define this way all the transition rules for each degree of the scale. We now generate a sequence of degrees we call prog based on these rules with the function GEN-MARKOV-FROM-TRANSITIONS (for more information on Markov chains, you can consult: https://en.wikipedia.org/wiki/Markov_chain ): (setf prog (gen-markov-from-transitions transition :size 24 :start 1)) which can for example give this result: => (1 5 1 4 2 4 2 4 2 5 6 4 5 1 5 6 4 5 1 5 6 4 2 5) Because the function that we'll use to generate chords is based on a numbering starting from zero but our degrees generation is based on a numbering starting from 1, we will subtract 1 to each value of our list prog to able to provide our next function a number list starting from zero. To do this, we use the MAPCAR Lisp function to apply -1 to each value of the list and we store the result in the variable prog.prep. (setf prog.prep (mapcar (lambda(x) (- x 1)) prog)) => (0 4 0 3 1 3 1 3 1 4 5 3 4 0 4 5 3 4 0 4 5 3 1 4) Now we generate chords using the HARMONIC-PROGRESSION function and store the result in the variable named chords: (setf chords (harmonic-progression prog.prep '(d4 major))) The parameters passed to the function are our degrees List prog.prep and a scale with a root base (here d4). Here is the output of this function in notation: Of course, we are not limited to Major and Minor scales, we can use any scale or pitch structure available or generated by Opusmodus, here are some examples: (setf chords (harmonic-progression prog.prep '(d4 messiaen-mode5))) (setf chords (harmonic-progression prog.prep '(c4 acoustic-scale) :root '(d4 f4 g4 e4 bb3))) (setf chords (harmonic-progression prog.prep '(d4e4fs4gs4as4c5ds5) :root '(d4 f4 g4 e4 bb3))) A final example using the keyword :relative enabling a smoother transition between chords with a relative voice leading between chords. (setf chords (harmonic-progression prog.prep '(d4e4fs4gs4as4c5ds5) :root '(d4 f4 g4 e4 bb3) :relative t)) Once these chords generated, you can use them as you want in Opusmodus, map them on musical structures with TONALITY-MAP function or use them as basic materials to create reservoirs of pitch or other kind of pitch material. SB.
  10. 4e an special prize in the contest Pianoteq 207

    Bravo Didier !! Félicitations ! S.
  11. saving the output (omn) in a seperat file

    Somewhere on this forum, there is an example from Janusz on how to implement the seed in you own function... S.
  12. Shuffle Elements

    yes S.
  13. 'Stages 13' Typo?

    Yes. S.
  14. Set Theory: Retrieving Pitch Class sets from collections of notes

    You may have a look to the function get-harmonic-path. You can decide the harmonic rhythm analysis you use fir this function with the parameter time. You can pass after the output of this function to pcs-analysis. S.
  15. The single orange was the only light

    Merci Didier. S.
  16. The single orange was the only light

    Hello, a new piece for ensemble after viewing an Egon Schiele exposition in Albertina museum, Vienna. SB TheSingleOrangeWasTheOnlyLight Partition complète.pdf
  17. MittWoch

    new piece inspired by my new location in Austria: Vienna SB.
  18. Hi, here's the first movement of a work in progress, my strings quartet No.1. OpmoScore attached. You can also find how it was algorithmically made in this forum article/example: SB. Sqrt1-Full-GM.opmo
  19. Help with Processing Live Weather Data in Opusmodus

    OSC is already in Opusmodus but not documented. Janusz ? S.
  20. Opuspianotimbres for Pianoteq Video Contest 2017

    Super top Didier !! Bravo ! S.
  21. Improving length-rest-series

    Done. It works now. Thx. S.
  22. Improving length-rest-series

    Dear Torsten, i will have a look to git installation when i will have a bit of time. Thank you for the information. best, Stéphane
  23. Improving length-rest-series

    Hi Torsten, when evaluate your OMN-utils.lisp i get a: Error: There is no package named "TU" I would like to use your last version of edit-omn but it seem i need some other files (TU). Thanks S.
×