Jump to content
  • Sign in to follow this  

    Lesson 12. Pitch Variation and Articulation


    opmo



    Annotation

    This piece in A B A structure sets side-by-side two different ways of generating pitch material for the right hand.

    The first we’ve met before:

     

    (setf line-rnd (gen-eval 5 '(rnd-sample (rnd-range 3 5) line) :seed 41))
    => ((g4 cs4 c5 cs4) (fs4 c5 fs4 cs4) (c5 g4 g4 fs4 c4)
        (fs4 c5 g4 c5) (c4 c4 cs4))

     

    The second is using a generation function able to produce Markov chains. 

     

    (setf line-rd (rnd-sample (length (flatten line-rnd)) line :seed 35))
    => (fs4 c5 fs4 cs4 c4 c5 c5 g4 g4 fs4 c4
        c5 c5 fs4 c4 fs4 c5 c4 cs4 c4)

     

    GEN-MARKOV takes the output of randomizing our scale line and reorders it to highlight the inner patterns of line-rnd.

     

    (setf line-markov (encode-seq (gen-markov line-rd :seed 35))) 
    => (c4 c5 c5 g4 fs4 c5 fs4 c4 c5 c5 g4
        fs4 c5 fs4 c4 fs4 c4 cs4 c4 cs4)

     

    We need to match the line-rnd with line-markov. Although we could simple count the number of pitches in line-rnd it’s more accurate, and certainly quicker and easier in a larger list, to use GET-COUNT

     

    (get-count line-rnd :sum t) 
    => 20

     

    This piece features the use of articulation to enhance section B:

     

    (setf no-artic (gen-repeat 5 (list '(-)))) 

     

    '(-) this means no articulation, or:

     

    => ((-) (-) (-) (-) (-))
    (setq staccato (gen-repeat 5 (list '(stacc))))
    => ((stacc) (stacc) (stacc) (stacc) (stacc))
    
    (setf articulations-ABA (append no-artic staccato no-artic))
    => ((-) (-) (-) (-) (-)
        (stacc) (stacc) (stacc) (stacc) (stacc)
        (-) (-) (-) (-) (-))

     

    When made into an OMN list with MAKE-OMN the articulation looks like this:

     

    ((e g4 f cs4 c5 cs4) (e fs4 p c5 fs4 cs4)
     (e c5 f g4 g4 fs4 c4) (e fs4 p c5 g4 c5)
     (e c4 ff c4 cs4) (e c4 p stacc c5 stacc c5 stacc g4 stacc)
     (e fs4 mp stacc c5 stacc fs4 stacc c4 stacc)
     (e c5 p stacc c5 stacc g4 stacc fs4 stacc c5 stacc)
     (e fs4 mp stacc c4 stacc fs4 stacc c4 stacc)
     (e cs4 mf stacc c4 stacc cs4 stacc) (e g4 f cs4 c5 cs4)
     (e fs4 p c5 fs4 cs4) (e c5 f g4 g4 fs4 c4)
     (e fs4 p c5 g4 c5) (e c4 ff c4 cs4))

    Remember, by just repeating the articulation stacc the note-length, pitch and dynamic are automatically repeated, as above.


    Score

    (setf line '(c4 cs4 fs4 g4 c5))
    (setf bass (pitch-transpose -24 line))
    (setf line-rnd (gen-eval 5 '(rnd-sample (rnd-range 3 5) line) :seed 41))
    (setf line-rd (rnd-sample (get-count line-rnd :sum t) line :seed 35))
    (setf line-markov (gen-markov line-rd :seed 35))
    (setf line-markov-d (span line-rnd line-markov))
    
    (setf bass-line (span line-rnd bass))
    (setf bass-markov (pitch-transpose -18 (span line-markov-d line-rnd)))
    (setf bass-select (filter-first 1 bass-line))
    (setf bass-markov (filter-first 1 bass-markov))
    
    (setf rhythm (span line-rnd '(e)))
    (setf bass-rhythm (gen-repeat 3 (mclist (get-span rhythm))))
    
    (setf dynamics (mclist '(f p f p ff)))
    (setf dyn-spanned (span line-rnd dynamics))
    (setf dyn-markov (mclist '(p mp p mp mf)))
    (setf dyn-markov-spanned (span line-markov-d dyn-markov))
    
    (setf ABA-rh (assemble-seq
                  line-rnd
                  line-markov-d
                  line-rnd))
    
    (setf ABA-lh (assemble-seq
                  bass-select
                  bass-markov
                  bass-select))
    
    (setf rhyABA (assemble-seq (gen-repeat 3 rhythm)))
    (setf rhyABAb bass-rhythm)
    
    (setf dynABA (assemble-seq
                  dyn-spanned
                  dyn-markov-spanned
                  dyn-spanned))
    
    (setf no-artic (gen-repeat 5 (list '(-))))
    (setq staccato (gen-repeat 5 (list '(stacc))))
    (setf articulations-ABA (assemble-seq no-artic staccato no-artic))
    
    (setf line-1 (make-omn 
                  :length rhyABA
                  :pitch ABA-rh
                  :velocity dynABA
                  :articulation articulations-ABA))
    
    (setf bass-1 (make-omn 
                  :length rhyABAb
                  :pitch ABA-lh
                  :velocity dynABA))
    
    (setf ts-list (get-time-signature line-1))
    
    (def-score lesson-12
               (: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 12.06.11.png

     

    Next page Lesson 13. Working with Binary Rhythmics

    Go back to Reference page.


    Sign in to follow this  



×