Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,059
  • Joined

  • Last visited

Posts posted by Stephane Boussuge

  1. On 5/7/2023 at 1:17 PM, JimmyTheSaint said:

    extracting different portions of the sequence list for different instruments

     

    In that case, you can use substitute-map.  Here's a short example for woodwind trio:

     

    ;;;---------------------------------------------------------
    ;;; Parameters
    
    (setf material
          '(#|1|# (q. f4 f e fs4 q d4 s c4 f4 a4 fs4)
            #|2|# (e d4 f c4 f4 a4 fs4 b4 eb4 f4)
            #|3|# (h f4 a4)
            #|4|# (h fs4 f b4)
            #|5|# (h eb4 f4)
            #|6|# (q. gs4 mp e c4 q f4 s a4 a4 gs4 b4)
            #|7|# (h f4 mp a4)
            #|8|# (q. a4 mp e gs4 q b4 s gs4 c4 b4 fs4)
            ))
    
    (setf fl.index '(1 2 1 3 1 4 5 6 7 8))
    (setf ob.index '(3 2 4 3 5 4 6 5 7 6))
    (setf bn.index '(1 2 2 1 1 3 3 1 1 4))
    
    (setf ref-list (gen-integer 1 (length material)))
    (setf flute (substitute-map material ref-list fl.index))
    (setf oboe (substitute-map material ref-list ob.index))
    (setf bassoon (pitch-transpose 
                   -24 
                   (substitute-map 
                    material 
                    ref-list
                    bn.index)))
    
    ;;;---------------------------------------------------------
    ;;; Score and Layout
    
    (def-score woodwind-trio
        (:title "Title"
         :composer "Composer"
         :copyright "Copyright © "
         :key-signature 'chromatic
         :time-signature '((1 1 1 1) 4)
         :tempo 100
         :layout (wind-trio-layout 'flute 'oboe '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))
       )
      
      (bassoon
       :omn bassoon
       :channel 3
       :sound 'gm
       :program 'bassoon
       :volume 95
       :pan 70
       :controllers (91 '(57))
       )
      )
    
    

    SB.

  2. Hi,

     

    here's your code slightly modified to give you and example of the usage of counterpoint function with multiple lists.

     

    As you can see, the :sequence keyword in dictum allow you to choose for each instrument in which list you pick the patterns.

     

    I've added 2 more lines to your dictum to show how to use :span to constrain the time signature on some bars.

    The :extend keyword allow you to add rest at the end (default) or at the start (:extend '(s))) of the bar when a bar is extended by :span keyword.

    Hope this example will help.

     

    Best regards.

     

    Stéphane Boussuge

     

    
    
    (progn
      (setf my-dictum '(((- 1 2 -) :sequence '(1 1 2 1))
                        ((1 - - 2) :sequence '(1 1 2 1))
                        ((2 - - 2) :sequence '(1 1 2 1))
                        ((1 2 2 1) :sequence '(1 1 2 1))
                        ((3 1 3 2) :span 4/4 :sequence '(1 1 2 1) :extend '(- s s -))
                        ((4 1 4 1) :span 2/4 :sequence '(1 1 2 1))
                        ))
    
      (setf times (* 1 (length my-dictum)))
      (setf my-root -0)
      (setf my-intervals '(0 1 4 7))
      (setf my-pitches (pitch-transpose my-root (integer-to-pitch my-intervals)))
      (setf my-lengths (rnd-sample times '((q e) (q q)) :seed 356))
      (setf my-articulations (span my-lengths '(-)))
    
      (setf my-velocities '(pp p mp mf f ff))
    
      (setf my-sequence (make-omn
                         :length my-lengths
                         :pitch my-pitches
                         :velocity my-velocities))
    
      (setf my-chord-sequence (make-omn
                               :length my-lengths
                               :pitch (gen-chord2 '(2 4) '(2 2 3 4)
                                                  '((c4 cs4 e4 g4)
                                                    (c4 cs4 e4 g4)))
                               :velocity my-velocities
                               :articulation my-articulations))
    
      (setf my-time-signature (get-time-signature my-sequence))
    
      (counterpoint (list my-sequence my-chord-sequence)
                    my-dictum
                    :global-methods '((fl) (cl) (hn) (vc))
                    :index 'voice1-)
      
      (ps 'gm
          :fl (list voice1-1)
          :cl (list voice1-2)
          :hn (list voice1-3)
          :vc (list voice1-4)
          :tempo 161
         )
      )
     

     

  3. I’m always amazed by the incredible power of Opusmodus and the inspiration it give to me to compose and explore new possibilities .

    Actually, I'm playing and experimenting a bit with OM and orchestra,
    preparing my next package of video lessons for ComposerWorkshop.com.

    Today, I've made this output from my experiences, nothing extraordinary but I wanted to share it as an example of what we can make with Opusmodus in about 1h.

    It's basically only Slonimsky patterns distributed to the orchestra on an heterophonic way with transpositions from Opusmodus bind-to-interval function (set to "0")

    Stéphane

     

  4. I don't know if it could be the reason but in you study score, I see a (midi-destination) function in the middle of your def-score !!!

     

    Try to remove it to see if it was the problem...

     

     

    We will find a solution.

     

    If you can't find, I will help you by Zoom (for free).

     

    Best

     

    Stéphane

     

    Hi again,

     

    here's your file corrected.

    Continue to study, you will success.

    Best

     

    S.

     

    Fibonacci Meditation STUDY DOC Correction.opmo

  5. Opusmodus is for everybody but the start could be difficult indeed.

     

    To evaluate, you have to be sure you right click into the score file and choose : "Evaluate score / Notation" and NOT "Evaluate all" because in that case you will get nothing...

     

    May be you can take a private lesson with me just for the start or check my videos course, particularly "Introduction to Opusmodus".

     

    Appointment for lessons or videos pack lessons are available here:

     

    ComposerWorkshop.com

     

     

    Best !

     

    Stéphane

     

     

  6. Ok, i suppose your DAW is connected to "looMIDI Port" so you have to use :port 1 .

    My example above just send to your Microsoft GM wavetable but not to your DAW.

    Naturally, if you DAW is connected to  "looMIDI Port 1" , it is :port 2 according to your setup and "looMIDI Port 2" = :port 3 etc...

    So, in FiboMedit file, you have to set up the port on 1 (if DAW connected "looMIDI Port") like that:

     

    (setf size 48)
    ;; define the high value for fibonacci serie
    (setf fiboharmup (rnd-round size 2000))
    ;; define low val
    (setf fiboharmbase (- fiboharmup size))
    ;; Fibo definition
    (setf fibo (modus (fibonacci fiboharmbase fiboharmup) :mod 12))
    ;; Transform to pitch
    (setf pmat (integer-to-pitch fibo))
    ;; define chords size for harmonic mapping
    (setf chordsize 4)
    ;; chords generation
    (setf chords (gen-chord2 size chordsize pmat :offset (vector-to-list
                                                          (vector-round 3 chordsize fibo))
                             :transpose (vector-to-list 
                                         (vector-round -6 12 fibo))))
    ;;Hamonic path definition
    (setf path (tonality-series chords))
    ;; Make some parts
    (setf pad1* (tonality-map path (gen-repeat (/ size 4) '((4/1 c4g4c5e5g5)))))
    (setf pad2* (tonality-map path (gen-repeat (/ size 4) '((4/1 c3g3c4e4g4)))))
    
    (setf arpbase1 
                    (make-omn
                     :pitch (integer-to-pitch (gen-trim 64 fibo))
                     :length (list (length-span 4 (binary-map (modus fibo :mod 2) (gen-repeat 16 's))))
                    ))
    (setf arp1* (tonality-map path (gen-repeat (/ size 4) arpbase1)))
    (setf arpbase2 
                    (make-omn
                     :pitch (integer-to-pitch (gen-trim 64 (gen-rotate 8 fibo)))
                     :length (list (length-span 4 (binary-map (modus (gen-rotate 8 fibo) :mod 2) (gen-repeat 16 's))))
                     ))
    (setf arp2* (tonality-map path (gen-repeat (/ size 4) arpbase2)))
    
    
    ;; Instrumentation et timeline
    (setf  
     pad1 pad1*
     arp1 arp1*
     arp2 arp2*
     pad2 pad1*
     pad3 pad2*
    )
    
    (setf fibobase1 (rnd-round size 2000))
    (setf fibomute1 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase1 size) fibobase1) :mod 2)))
    (setf fibobase2 (rnd-round size 2000))
    (setf fibomute2 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase2 size) fibobase2) :mod 2)))
    (setf fibobase3 (rnd-round size 2000))
    (setf fibomute3 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase3 size) fibobase3) :mod 2)))
    (setf fibobase4 (rnd-round size 2000))
    (setf fibomute4 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase4 size) fibobase4) :mod 2)))
    (setf fibobase5 (rnd-round size 2000))
    (setf fibomute5 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase5 size) fibobase5) :mod 2)))
    (setf fibobase6 (rnd-round size 2000))
    (setf fibomute6 (substitute-map 
                     '(x -) '(0 1)
                     (modus (fibonacci (- fibobase6 size) fibobase6) :mod 2)))
    
    (do-timeline 
     '(
       pad1 fibomute1
       arp1 fibomute2
       arp2 fibomute3
       pad2 fibomute4
       pad3 fibomute5
       )
     '(gen-pause x) :time 4/1)
    
    
    ;; Score definition
    (def-score fibomeditation
               (
                :title "Fibonacci's Meditation"
                :key-signature 'chromatic
                :time-signature '(4 4)
                :composer "S.Boussuge"
                :copyright "Copyright © 2015 S.Boussuge"
                :tempo 72
                )
    
    (pad1 :omn pad1 :channel 1 :port 1 :volume 52 :pan 42)
    (arp1 :omn arp1 :channel 2 :port 1 :volume 112 :pan 74)
    (arp2 :omn arp2 :channel 3 :port 1 :volume 96 :pan 45)
    (pad2 :omn pad2 :channel 4 :port 1 :volume 38)
    (pad3 :omn pad3 :channel 5 :port 1 :volume 58 :pan 64)
    )
    

     

  7. Hi,

    Did you success with other files ?

    Did you try (midi-destinations) function listener to find the correct number of the midi port used by your DAW ?

     

    Once this number found, evaluate the following score and replace the number in :port 0 by the number of your midi port to your DAW to test it.

     

    (def-score temp 
               (
                :key-signature 'chromatic 
                :time-signature '(4 4) 
                :tempo 120
                )
                
    
    
    (inst1
     :omn '((q c4 d4 e4 f4)(q g4 a4 b4 c5))
     :channel 1
     :port 0
    
     )
    )

     SB.

  8. 2 hours ago, RevJames said:

    So, even if I am changing the ports to the LoopMIDI ports assigned to MY DAW, this would produce no sound? That has not been the case with other study examples I have so far worked with.

    Normally it has to produce sound.

    Did you get some error messages ?

     

  9. No, it is normal you didn't get any sound because the sound goes through ports to my host and plugins.

     

    I share the score here for study purposes but if you want to get at least gm sound, just comment or suppress the :port 0 expressions.

     

    S.

  10. 13 hours ago, david said:

    Hi Zvony,

    it works perfectly, thank you!
    however, if you listen audio file (soundcould) bar 3 we hear a glissando which does not appear on the OM score.

    is it exactly the same score?

    The OM output was my base but I've edited very much this output in Sibelius. If I remember correctly, the render was made with a mix between Noteperformer3 and Hollywood strings from EastWest. (Or may be only noteperformer3, I can't remember exactly ...)

     

    For information, a working GM file of Pluton is by default in OM Score demos inside the app itself.

     

    Best !

     

    SB.

     

  11. Hi Zvony,

    I've downloaded the file and it compile fine here but I've seen a possible source of error:

    I think you should replace "default" by "def" in the function definition of articulation processor:

    :otherwise '(default) replace by :otherwise '(def) 

     

    Let me know if it works.

     

    Best

     

    Stéphane

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy