• # Lesson 6. Structure

## Annotation

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
(make-omn
: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
(make-omn
: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

```(display-midi
(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.

## Score

```(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))

(piano-rh
:omn pno-rh
:channel 1
:sound 'gm
:program 'acoustic-grand-piano)

(piano-lh
:omn pno-lh)
)```

## Notation

Go back to Reference page.

Edited by opmo

×

• Lessons