Next Chapter
Previous Chapter
Table of Contents

A Complete Example

As a final exercise we will build up a short section of music by working with many of the commands we have learned about so far. This chapter should be performed in a freshly booted Common Music. Output from this example can be found the in the file "section.midi" in the tutorial directory

We start off by importing the tutorial file noodle.midi to a thread called T1 and listening to it. The material sound best using a piano sound.

[You much change the path /cm/stella/tutorial/ in the import statement below to the correct tutorial directory path name for your machine]

Stella [Top-Level]: import /Lisp/cm/tutorials/stella/noodle.midi
Stella [Top-Level]: rename top-level[end] t1
Stella [Top-Level]: mix t1
Start time offset: (<cr>=None) <cr>
Start building the section by copying T1 to a new thread called T2, then transposing the material in T2 up one octave. Then listen to both threads with T2 offset by 5 seconds:

Stella [Top-Level]: copy t1
Copied T1 to Pasteboard.
Stella [Top-Level]: paste top-level t2
Pasted T2 to Top-Level.
Stella [Top-Level]: transpose t2 note 12
Stella [Top-Level]: mix t1,t2 0,5
Stella [Top-Level]:
Edit T2 to give it a slightly more interesting effect:

Stella [Top-Level]: map t2 scale amplitude 2 when (member note '(g5 gs5
g6 gs6 g7 gs7)) scale amplitude 3 duration 2
Stella [Top-Level]:
This last example mapped over T2 and scaled amplitudes by 2. If the frequency was in the set (g5 gs5 g6 gs6 g7 gs7) the amplitude was scaled again by 3 and the duration was doubled, thus highlighting all G and GS frequencies. Now listen to both threads again to hear the new effect:

Stella [Top-Level]: mix t1,t2 0,5
Stella [Top-Level]:
Next build a bass texture by pasting T1 to a new thread T3 and then transposing T3 down 2 octaves. Since lower tones require more energy to "speak", scale the amplitudes in T3 by 5.

Stella [Top-Level]: paste top-level t3
Pasted T3 to Top-Level.
Stella [Top-Level]: map t3 transpose note -24 and scale amplitude 5
Stella [Top-Level]: 
Now emphasize just the lowest note in the bass texture. What is this frequency?:

Stella [Top-Level]: map t3 lowest note

CLAUSE         COUNT  VALUE
lowest   note    180  C2

Stella [Top-Level]: map t3 when (scale= note 'c2) scale duration 2
amplitude 2
Stella [Top-Level]:
Now listen to all the material together with each voice offset by five seconds:

Stella [Top-Level]: mix t1,t2,t3 0,5,10
Stella [Top-Level]: 
Next, define an algorithm called Chords that randomly constructs chords:

(algorithm chords midi-note (amplitude .75)
  (setf note
    (item (notes (chord (notes c6 d ef f g af bf
                               in heap for 4))
                 (chord (notes c5 d ef f g af bf
                               in heap for 4))
                 (chord (notes c4 d ef f g af bf
                               in heap for 4))
                 r)
          :kill 6))
  (setf rhythm 
    (item (rhythms 32 (rhythms e q. h for 1) e e)))
  (setf duration rhythm))
Now listen to Chords by itself four times with a pause of 1 second between repetitions.

Stella [Top-Level]: seq chords 5,4,1
Stella [Top-Level]:
Finally, listen to all the material together:
Stella [Top-Level]: mix t1,t2,t3,chords 0,5,10,15
Stella [Top-Level]:
Next Chapter
Previous Chapter
Table of Contents