Jump to content
  • Sign in to follow this  

    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

    Sign in to follow this  

  • Introduction to OMN the language

    OMN is designed as a scripting language for musical events. It’s not about sounds themselves, it is about their control and organisation in a musical composition. As a linear script rather than a graphic stave, musical events can be transformed, extended, reorganised by powerful computer algorithms. Some sequencers and score writers provide basic algorithms, but they do not represent the way composers now think about the process of music composition. Composing has become such a multi-faceted pro

    OMN The Language 0
  • Introduction to Opusmodus

    Contents A Contemporary Language for Making Music The Parametric World of Music The Parametric Instrument Learning Opusmodus : A Strategy Important Questions: Necessary Answers

    Tutorial Guide 0
  • CLM Installation

    Contents CLM Installation Command Line Tools Load and Compile Instruments CLM Installation Common Lisp Music, by William Schottstaedt is a powerful sound synthesis language implemented in Lisp and C. CLM is essentiall

    CLM Examples 0
  • Create New...