Jump to content
  • Sign in to follow this  

    Lesson 26. Chords to Parts


    opmo



    Annotation

    A Piano Trio

    This score-script returns to Lesson 18 to create a version of the chorale, this time for piano trio. So the score opens with an opportunity to see how DEF-SOUND-SET is used to set up a violin and a cello part. This is more than setting a program change: it includes the mapping of program changes to reflect the string articulations of arco, pizz, staccato and tremolo.

     

    Most of the score-script remains the same until we get to the articulation and remix expressions:

     

    (setq art-1 
          '((arco arco arco arco arco+fermata)
            (stacc stacc stacc stacc stacc+fermata)
            (trem trem trem trem trem+fermata)
            (pizz pizz pizz pizz pizz+fermata)
            (arco arco arco arco arco+fermata)))

     

    Notice how the combining of arco and fermata requires a joining together as arco+fermata

     

    (setf vn-1 (pitch-demix 1 rh-ab))
    (setf vc-1 (pitch-demix 2 lh-abt))

     

    In 'remixing' the right and left hand diads played by the piano to a single part we indicate which of the two notes in the diads should be de-mixed. The original expression is this:

     

    (setf rh-ab 
        (pitch-mix (list (integer-to-pitch rh-a)
                        (integer-to-pitch rh-b))))
    => ((bb4eb4 bb4e4 bb4f4 gs4cs4 bb4f4 . . .)
    
    (setf vn-1 (pitch-demix 1 rh-ab))
    => (bb4 bb4 bb4 gs4 bb4 gs4 bb4 b4 c5 . . .)

     

    So setting the position value to 1 separates the treble from the alto voice in the diad and outputs the treble.

    To get the cello part we use the same approach, but setting the position value to 2 separates the tenor from the bass voice in the diad and outputs the bass.

     

    The only remaining tasks are to MAKE-OMN for both new parts

     

    (setf vn
          (make-omn 
           :length rhy-1
           :pitch vn-1
           :velocity dyn-1
           :articulation art-1))
           
    (setf vc
          (make-omn 
           :length rhy-1
           :pitch vc-1
           :velocity dyn-1
           :articulation art-1))

     

    and create a new DEF-SCORE expression for violin and cello.

     

    (violin
     :omn vn 
     :channel 2
     :sound 'gm-violin)
     
    (violoncello
     :omn vc
     :sound 'gm-cello
     :channel 3)


    Score

    ;; Sound Sets
    (def-sound-set GM-violin
       :programs
      (:group violin 
              arco 40
              trem 44
              pizz 45))
    
    (def-sound-set GM-cello
       :programs
      (:group violin
              arco 42
              trem 44
              pizz 45))
    
    ;; Material
    (init-seed 2)
    
    (setf
     row-1 '(12 11 10 9 8)
     row-2 '(7 8 9 10 11)
     row-3 '(6 7 6 7 6)
     row-4 '(1 2 3 4 5))
    
    (setf
     r-1 (rnd-pick (list row-1 row-1 row-1 row-2 row-3))
     r-2 (rnd-pick (list row-2 row-3 row-3 row-4 row-4))
     r-3 (rnd-pick (list row-1 row-1 row-2 row-2 row-3))
     r-4 (rnd-pick (list row-2 row-3 row-4 row-4 row-4)))
    
    (setq
     rh-a (rnd-sample 25 r-1)
     rh-b (rnd-sample 25 r-2))
    
    (setf
     lh-a (rnd-sample 25 r-3)
     lh-b (rnd-sample 25 r-4))
    
    (setf rh-ab (pitch-mix
                 (list (integer-to-pitch rh-a)
                       (integer-to-pitch rh-b))))
    
    (setf lh-ab (pitch-mix
                 (list (integer-to-pitch lh-a)
                       (integer-to-pitch lh-b))))
    
    (setf lh-abt (pitch-transpose -12 lh-ab))
    (setf rhy (span rh-ab '(q)))
    (setf rhy-1 (gen-repeat 5 (list '(q q q q q))))
    (setf ferm (gen-repeat 5 (list '(- - - - fermata2))))
    (setq dyn-1 '((f mp< < < ff) (mf f mp> > pp)
                  (p< < mf mp mf) (f ff f> > mp)
                  (mf p mp> > pp)))
    
    (setq art-1 '((arco - - - fermata)
                  (stacc stacc stacc stacc stacc+fermata)
                  (trem trem trem trem trem+fermata)
                  (pizz - - - fermata)
                  (arco - - - fermata)))
    
    (setf vn-1 (pitch-demix 1 rh-ab))
    (setf vc-1 (pitch-demix 2 lh-abt))
    
    (setf vn (make-omn 
              :length rhy-1
              :pitch vn-1
              :velocity dyn-1
              :articulation art-1))
    
    (setf vc (make-omn 
              :length rhy-1
              :pitch  vc-1
              :velocity dyn-1
              :articulation art-1))
    
    (setf rh-1 (make-omn 
                :length rhy-1
                :pitch rh-ab
                :velocity dyn-1
                :articulation ferm))
    
    (setf lh-1 (make-omn 
                :length rhy-1
                :pitch lh-abt
                :velocity dyn-1
                :articulation ferm))
    
    (def-score lesson-26
               (:key-signature 'chromatic
                :time-signature (get-time-signature vn)
                :tempo '(q 70)
                :layout (list
                         (bracket-group
                          (violin-layout 'violin)
                          (violoncello-layout 'violoncello))
                         (piano-layout 'piano-rh 'piano-lh)))
      
      (violin :omn vn :channel 2 :sound 'gm-violin :pan 20)
      (violoncello :omn vc :channel 3 :sound 'gm-cello :pan 110) 
      (piano-rh :omn rh-1 :channel 1 :sound 'gm :program 'acoustic-grand-piano :pan 64)  
      (piano-lh :omn lh-1)
      )
    ;; Setting random back to NIL
    (init-seed nil)


    Notation


    Screen Shot 2017-12-06 at 03.08.21.png

     

    Next page Lesson 27. Merging Parts and Sequencing Score-Scripts

    Go back to Reference page.


    Sign in to follow this  



×