Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,072
  • Joined

  • Last visited

Posts posted by Stephane Boussuge

  1. (setf perm (assemble-seq (mapcar 'permute pat1)))
    
     

    SB

    But if you want to alternate permutations of s1UP and s1down, you can do this:

     

    (setf s1u (library 'slonimsky 'tritone 's1u))
    (setf s1d (library 'slonimsky 'tritone 's1d))
     
    (setf s1u.perm (permute s1u))
    (setf s1d.perm (permute s1d))
    
    (setf pch (assemble-seq
    	   (loop for i in s1u.perm
    		 for j in s1d.perm
    		 collect (list i j))))
     
    (setf ry1 '((s s s s s s s s)))
     
    (setf Gmaj7.omn
         (make-omn
          :pitch pch
          :length ry1
          :span :pitch
     ))
    

    SB

  2. Hi,

     

    the code don't necessary needs to be wrapped in a progn.

     

    but, at least, each time you change something, that line as to be evaluated and the def-score or PS as well.

     

    But if the code is not too heavy, it is generally faster to evaluate the whole file (right click and Evaluate and Live coding or Ctrl+Cmd +8 for a normal def-score.

    If you use a ps with the option :output :live-coding, you can just use evaluate all (CMD+MAj +E)

     

    SB.

     

     

  3. Unfortunately, it is not possible directly from Opusmodus.

    I'm using UVI Ircam instruments as well and I host them in Plogue Bidule and use a Plogue bidule module (Keyswitch module) to transform key switch from Opusmodus to Midi channel change in Bidule before to send to the Plugin.

    This is also probably possible in Logic Pro with the Midi scripter if you don't have Plogue Bidule....

     

    Stéphane

  4. Something like that ?

     

    '((h (b3 maj7) (d3 7))
      (h (g3 maj7) (bb3 7))
      (w (eb3 maj7))
      (h (a3 m7) (d3 7))
      (h (g3 maj7) (bb3 7))
      (h (eb3 maj7) (gb3 7))
      (w (b3 maj7)) (h (f3 m7) (bb3 7))
      (w (eb3 maj7)) (h (a3 m7) (d3 7))
      (w (g3 maj7)) (h (cs3 m7) (fs3 7))
      (w (b3 maj7)) (h (f3 m7) (bb3 7))
      (w (eb maj7)) (h (cs3 m7) (fs3 7)))

    SB.

  5. 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.

  6. 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

     

  7. 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

  8. (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.

  9. 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.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy