Jump to content
  • Opusmodus
  • Lesson 6. Structure



    This piece has an A B A structure. It uses the LENGTH-WEIGHT function to produce rhythmic variety in both hands and with lines of pitches and chords. The function ASSEMBLE-SEQ is a catch-all function able to join lists of single and double parentheses together.

    (setf part-1-rh (assemble-seq line-1 line-2 line-1))
    (setf part-1-lh (assemble-seq bass-1 bass-2 bass-1))


    There are now four MAKE-OMN expressions, two for each hand. Here’s the B section:

    (setf pno-rhB
           :length lengths-w
           :pitch chords
           :velocity '(mp)))
    => ((-e c4db4fs4 mp - g4c5 c4db4fs4)
        (e g4c5 c4db4fs4 - g4c5 -)
        (e c4db4fs4 g4c5 c4db4fs4 - g4c5)
        (-e c4db4fs4 g4c5 c4db4fs4 g4c5)
        (e c4db4fs4 - g4c5 - c4db4fs4))
    (setf pno-lhB
           :length rhythm-wi
           :pitch pitch-transpose
           :velocity '(f)))
    => ((e c2 f cs2 fs2 g2 -)
        (-e - c2 cs2 fs2)
        (e c2 cs2 fs2 - -)
        (e c2 - cs2 fs2 g2)
        (e c2 - cs2 fs2 -))


    In the OMN script above notice the use of the minus () symbol. This means a rest-length occurs in the length part.

    => ((1/8 1/8 1/8 1/8 -1/8)
        (-1/8 -1/8 1/8 1/8 1/8)
        (1/8 1/8 1/8 -1/8 -1/8)
        (1/8 -1/8 1/8 1/8 1/8)
        (1/8 -1/8 1/8 1/8 -1/8))
    (setf ts-list (get-time-signature pno-rh))
    => ((5 8 15))


    The ts-list produces automatically the correct number of time-signatures. But remember if want the notation to be properly grouped with all five pitches beamed we must use the keyword :group and its setting.

    (setf ts-list (get-time-signature pno-rh :group '((5))))


    There’s a final expression that might be added to this score-file using DISPLAY-MIDI and COMPILE-SCORE

     (compile-score 'lesson-6 :file "My-Scores/Lesson-6"))


    This shows how to create and save a midifile to your own folder. It’s useful if you want to take the midifile into another application.


    (setf pitches (gen-repeat 5 '((c4 cs4 fs4 g4 c5))))
    (setf pitch-transpose (pitch-transpose -24 pitches))
    (setf chords (respell '(c4cs4fs4 g4c5)))
    (setf lengths (span pitches '(e)))
    (setf lengths-w (length-weight lengths :weight '(2 1) :seed 30))
    (setf lengths-wi (length-weight lengths :weight '(3 1) :seed 23))
    (setf pno-rhA (make-omn 
                   :length lengths-w
                   :pitch pitches
                   :velocity '(f)))
    (setf pno-lhA (make-omn 
                   :length lengths
                   :pitch pitch-transpose
                   :velocity '(mp)))
    (setf pno-rhB (make-omn 
                   :length lengths-w
                   :pitch chords
                   :velocity '(mp)))
    (setf pno-lhB (make-omn 
                   :length lengths-wi
                   :pitch pitch-transpose
                   :velocity '(f)))
    (setf pno-rh (assemble-seq pno-rhA pno-rhB pno-rhA))
    (setf pno-lh (assemble-seq pno-lhA pno-lhB pno-lhA))
    (setf ts-list (get-time-signature pno-rh :group '((5))))
    (def-score lesson-6
               (:key-signature 'chromatic
                :time-signature ts-list
                :tempo 100
                :layout (piano-layout 'piano-rh 'piano-lh))
       :omn pno-rh
       :channel 1
       :sound 'gm
       :program 'acoustic-grand-piano)
       :omn pno-lh)



    Screen Shot 2017-12-04 at 22.37.34.png


    Next page Lesson 7. Retrograde, Transpose and Sections

    Go back to Reference page.

    Edited by opmo

  • Create New...

Important Information

Terms of Use Privacy Policy