Jump to content

Stephane Boussuge

Moderators
  • Posts

    821
  • Joined

  • Last visited

Everything posted by Stephane Boussuge

  1. Another possible way: (setf chords '(c4e4g4 e4g4c5)) (setf durations '(q e q e s)) (setf repetitions '(7 1 6 2 5 3 4 4)) (setf out (gen-repeat repetitions (make-omn :pitch (mclist chords) :length (gen-trim (length repetitions) (mclist durations)) ))) S.
  2. Hi Julio, the distribution is not made according to beats but just in order based on delta-time. But I agree I would like to have more control on distribution like the possibility to distribute list of pitch structure on vertical events (events with the same delta time) to be able to get a better control on the resultant harmonies. Best Stéphane
  3. In many scores, Pierre Boulez use a lot of accacciatura or appoggiatura , for exemple like in Dérive (1984), a score composed for and based on the name SACHER (famous hexachord used also in "Message esquisse"). Here's a function to help to add such appoggiature in your score based on a list of rhythmic values. There is a draft doc in French joined to the function definition. Hope it could be useful for some of us and may be improved and better coded and refined. My best to all of Opmo users. SB. gen-ornament.lisp gen-ornament.rtfd.zip
  4. Create a new workspace and add the document to it. Best. SB.
  5. (setf omn4 '((e b4 fs5 e3 a5) (e e5 b5 c4) (e g5 a4 eb3 d4) (e c6 b5 a4) (e c5 eb5 gs4) (e b4 f5 f5 fs5 gs5 a5) (e cs4 g4 c6) (e gs5))) (dictum '((:butlast leg :bar (1 3 6)) (:apply stacc :bar (2 4 5)) (:any e :apply q :bar (1 3 6)) (:first p :bar 1) (:apply < :bar 1 :event 2..4) (:apply < :bar 2 :event 1..2) (:apply ff :bar 4) (:apply > :bar 5) (:first pp :bar 7) (:apply < :bar 7 :event 2..3) (:apply fff :bar 8) (:last fermata :bar 8)) omn4) S.
  6. Another possibility is to generate ONLY chords and "dechord" all events between some length values like this: (setf omn (make-omn :pitch (chord-pitch-unique (chordize-list (gen-divide 4 (rnd-sample 256 (make-scale 'd4 8 :alt '(2 1 3)) )))) :length (rnd-sample 24 '((h q q)(s s s s q e e)(3q = = q h)(h h)(q e e q))) )) (setf omn2 (dictum '((:range (t e) :apply (dechord x))) omn)) S.
  7. Hi, here's a function I've made for myself. Best ! Stéphane add-interval-if-length.lisp add-interval-if-length.rtfd.zip
  8. (setf test '((q a4 mf e a4 p e gs4 f e4 mp g4 p) (q a4 e e gs4 e4 d4))) (setf one '(1 3)) (dictum `(:remove :event :bar 1 :event ,one) test) S.
  9. To output the content of a scale from Tonalities, you can also do like this: (expand-tonality '(c messiaen-mode6)) S.
  10. It is written in the doc - the intervals used by default are (-1 1 -2 2). S.
  11. Hi, I've made this long time ago, if it could help... (in-package :Opusmodus) ;;; Kontakt sonuscore - The Orchestra - generic ;;; keyswitches events (def-sound-set to-generic :programs (:group articulations staccato (:key c1) sustain (:key cs1) marcato (:key d1) legato (:key ds1) :group omn stacc (:key c1) spicc (:key c1) ord (:key cs1) norm (:key cs1) def (:key cs1) marc (:key d1) leg (:key ds1) trem (:key e1) pizz (:key f1) ) :controllers (:group Default-Settings Volume 7 Expression 11 )) SB.
  12. (filter-tie '(e c4 c4 e. c4 q c4 s c4 e eb4 e. eb4 h eb4 e. eb4 q eb4)) => (h. c4 mf wq eb4) also this could be useful as well but Janusz probably can program it much better: (defun filter-change (omn-lst) (make-omn :pitch (omn :pitch omn-lst) :length (binary-map (gen-binary-change (omn :pitch omn-lst)) (omn :length omn-lst)) :velocity (omn :velocity omn-lst) :articulation (omn :articulation omn-lst) :swallow t )) (filter-change '(e c4 c4 e. c4 q c4 s c4 e eb4 e. eb4 h eb4 e. eb4 q eb4)) => (e c4 - -e. -q -s e eb4 -e. -h -e. -q)
  13. Hi, may be some few private lessons with me could help. Kind regards Stéphane
  14. Very nice, thank you for sharing. Best Stéphane
  15. Video (in French) showing live coding creation of Euclidean percussions rhythms.
  16. My solution with loop: (loop for n1 in (rnd-number 100 1 2) for n2 in (gen-integer 1 100) collect (list n1 n2)) S
  17. You forgot to provide the content of chord variable and vector-chords so I can't help. S.
  18. Hi Zvony, here's a possible solution: (setf list1 (rnd-number 100 1 2)) (setf list2 (gen-integer 1 100)) (setf interleaved-list (matrix-transpose (list list1 list2))) S.
  19. It is also possible to map on pitch fields that way: ;;; Mapping on pitch-field (pitch-list-plot (tonality-map (append (chordize (make-scale 'c2 24 :alt '(2 1 6 5 4))) '(:map 'step )) (pitch-trajectory 128 '(0 23) '(0.1 1 0.1) :filter-repeat 1 :variance 0.8 ))) You can use different fields that way: (setf pfields (list (chordize (make-scale 'c2 24 :alt '(2 1 6 5 4))) (chordize (make-scale 'c2 24 :alt '(3 1 2 4))) (chordize (make-scale 'c2 24 :alt '(2 2 2 1))) )) (setf path (tonality-series pfields :map '(step))) (pitch-list-plot (tonality-map path (gen-eval 3 '(pitch-trajectory 128 '(0 23) '(0.1 1 0.1) :filter-repeat 1 :variance 0.2 )) )) And also use the :time parameter from tonality-map system if you use OMN expression: ;;; Example with omn without :time parameter (pitch-list-plot (tonality-map path (gen-filter-euclidean 12 16 11 16 (pitch-trajectory 128 '(0 23) '(0.1 1 0.1) :filter-repeat 1 :variance 0.2 ) 's) )) ;;; Same with :time parameter (pitch-list-plot (tonality-map path (gen-filter-euclidean 12 16 11 16 (pitch-trajectory 128 '(0 23) '(0.1 1 0.1) :filter-repeat 1 :variance 0.2 ) 's) :time '(h w))) S.
  20. Not actually, it was removed for technical reasons. Best Stéphane
  21. Hi, here's a short experiment/study composed today for mezzo-soprano, flute, clarinet and bassoon. Score is a bit commented for clarity and study purpose. All the best to all OM users. SB. MelodyOnTexture.mp3 MelodyOnTexture1GM.opmo
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy