Jump to content
  • Sign in to follow this  

    Lesson 11. Adding an Inner Part


    opmo



    Annotation

    The objective in this piece is to add an inner part to an existing two-part texture. This is achieved by creating a second gesture using the white-noise source and ‘unsmoothing’ the output so it has a more jagged and angular shape.

     

    (list-plot
     (vector-smooth 0.95 (gen-white-noise 50 :seed 2613))  
     :point-radius 0 :style :fill)

     

    Screen Shot 2017-12-05 at 11.43.56.png
     
        

    When the vector output is converted into pitches by VECTOR-MAP it is also processed with PITCH-INVERT.

     

    (setf line-rnd-b (gen-divide 5 (pitch-invert (vector-map line line-gesture-b))))
    => ((g4 g4 a4 g4 a4) (cs5 a4 g4 eb4 cs5) (cs5 gs4 d5 a4 eb4)    
        (g4 cs5 g4 a4 gs4) (cs5 a4 g4 a4 eb4) (g4 gs4 g4 a4 cs5)
        (d5 cs5 g4 cs5 a4) (d5 eb4 d4 cs5 g4) (a4 g4 d4 cs5 g4)
        (cs5 eb4 d4 d5 a4))

     

    The two ‘gestures’ are then mixed together using the PITCH-MIX function.

     

    (setf line-mix (pitch-mix (list (flatten line-rnd) (flatten line-rnd-b))))
    => (c5g4 c5g4 b4a4 b4g4 b4a4 g4cs5 fs4a4 g4 g4eb4 fs4cs5 fs4cs5 
        fs4gs4 f4d5 f4a4 f4eb4 fs4g4 f4cs5 fs4g4 f4a4 fs4gs4 f4cs5
        f4a4 f4g4 f4a4 f4eb4 fs4g4 fs4gs4 fs4g4 fs4a4 f4cs5 cs4d5 
        cs4cs5 cs4g4 cs4cs5 cs4a4 c4d5 cs4eb4 f4d4 cs4cs5 f4g4 f4a4 
        f4g4 fs4d4 fs4cs5 fs4g4 f4cs5 fs4eb4 g4d4 fs4d5 fs4a4)

     

    Each gesture is divided into 10 sub-lists. These have to be ‘flattened’ into a single list with the LISP primitive FLATTEN. Once the mix is done it can be re-divided back into 5/8 lists and any chord pitches removed with CHORD-PITCH-UNIQUE.

     

    (setf line-mix-ab (gen-divide 5 (chord-pitch-unique line-mix)))


    Score

    (setf line '(c4 cs4 f4 fs4 g4 b4 c5))
    (setf bass (pitch-transpose -24 line))
    
    #| Graph
    (list-plot (gen-white-noise 50 :seed 2613))
    (list-plot (vector-smooth 0.1 (gen-white-noise 50 :seed 2613))  :point-radius 1 :style :fill)
    (list-plot (vector-smooth 0.95 (gen-white-noise 50 :seed 2613)) :point-radius 1 :style :fill)
    |#
    
    (setf line-gesture (vector-smooth 0.1 (gen-white-noise 50 :seed 2613)))
    (setf line-gesture-b (vector-smooth 0.95 (gen-white-noise 50 :seed 2613)))
    (setf line-rnd (gen-divide 5 (vector-map line line-gesture)))
    (setf line-rnd-b (gen-divide 5 (pitch-invert (vector-map line line-gesture-b))))
    (setf line-mix (pitch-mix (list (flatten line-rnd) (flatten line-rnd-b))))
    (setf line-mix-ab (gen-divide 5 (chord-pitch-unique line-mix)))
    
    (setf rhythm (span line-rnd '(e)))
    (setf bass-line (gen-eval 10 '(rnd-pick (mclist bass)) :seed 3445))
    (setf b-rhythm (get-span rhythm))
    
    (setf dynamics (mclist '(f mp f mp ff)))
    (setf dynamics-spanned (span line-rnd dynamics))
    
    (setf line-1 (make-omn 
                  :length rhythm
                  :pitch line-mix-ab
                  :velocity dynamics-spanned))
    
    (setf bass-1 (make-omn 
                  :length b-rhythm
                  :pitch bass-line
                  :velocity dynamics-spanned))
    
    (setf ts-list (get-time-signature line-1 :group '((5))))
    
    (def-score lesson-11
               (:key-signature 'chromatic
                :time-signature ts-list
                :tempo 100
                :layout (piano-layout 'piano-rh 'piano-lh))
      
      (piano-rh
       :omn line-1
       :channel 1
       :sound 'gm
       :program 'acoustic-grand-piano)
      
      (piano-lh
       :omn bass-1)
      )


    Notation

    Screen Shot 2017-12-05 at 11.51.53.png

     

    Next page Lesson 12. Pitch Variation and Articulation

    Go back to Reference page.


    Sign in to follow this  



×