Lesson 1-30 is a sequence of tutorial guides to composing with Opusmodus. A score-script and its tutorial guide are designed to be studied side-by-side. Here below is a summary of each Lesson of the 30 section of the Guide.
- Lesson 1. Creating and Processing a List
- Lesson 2. Introducing OMN
- Lesson 3. Defining Chords
- Lesson 4. Rhythm, Repeats and Random Seeds
- Lesson 5. List Processing
- Lesson 6. Structure
- Lesson 7. Retrograde, Transpose and Sections
- Lesson 8. Changing Metre
- Lesson 9. The Bass Part
- Lesson 10. Gesture
- Lesson 11. Adding an Inner Part
- Lesson 12. Pitch Variation and Articulation
- Lesson 13. Working with Binary Rhythmics
- Lesson 14. Further Working with Binaries
- Lesson 15. Simplifying Melodic Texture
- Lesson 16. Ambitus
- Lesson 17. Working with Integers
- Lesson 18. A Chorale with Integers
- Lesson 19. Randomization and Variation
- Lesson 20. Skipping, Swallowing and Pausing
- Lesson 21. Mapping, Substituting and Interleaving
- Lesson 22. Lengths and Rhythms
- Lesson 23. Intervals and Rows
- Lesson 24. Tonality 1
- Lesson 25. Tonality 2
- Lesson 26. Chords to Parts
- Lesson 27. Merging Parts and Sequencing Score-Scripts
- Lesson 28. Working with Libraries
- Lesson 29. Tempo Changes and Percussion
- Lesson 30. Clusters, Repeats and Ornaments
Pattern #1 from Slonimsky’s Thesaurus is the pitch source of this and almost all the following Lessons. The function SPAN demonstrates how pitch patterns can be spanned to rhythm. Working with PITCH-TRANSPOSE.
Demonstrates how an OMN list is 'made'. How to use MAKE-OMN to Audition pitch, length and dynamics simultaneously.
How to make chords and use looping inside a metric space. Using GEN-REPEAT.
Producing rhythmic variety with LENGTH-WEIGHT. Introducing the control of the random keyword :seed. How the rest-length works where pitches 'skip' rests.
Writing lists (( ) ( ) ( )) or using the LISP primitive LIST to contain groups of pitches ((c4 cs4 fs4 g4 c5) (c4 cs4 fs4 g4 c5) (c4 cs4 fs4 g4 c5) . . .) rather than (c4 cs4 fs4 g4 c5 c4 cs4 fs4 g4 c5 c4 cs4 fs4 g4 c5)
Creating an A B A structure with ASSEMBLE-SEQ. Introducing DISPLAY-MIDI and COMPILE-SCORE. Saving a Midifile to a personal folder location.
How the :section keyword controls processing in sub-lists. Functions GEN-RETROGRADE and PITCH-TRANSPOSE.
How to change metre by creating sub-lists of different lengths to make 2/4 3/8 2/4 3/8 2/4. Using the function MCLIST to place dynamics in specific bars.
Creating a slower and distinct bass part with GET-SPAN and FILTER-FIRST.
Make melodic gestures with GEN-WHITE-NOISE. Viewing the output in LIST-PLOT. Using VECTOR-MAP and VECTOR-SMOOTH.
Adding an inner part from GEN-WHITE-NOISE. Using functions PITCH-MIX and PITCH-INVERT.
An A B A structure. Using GEN-MARKOV to create the B section. Adding an articulation: stacc.
Creating a binary rhythm with GEN-BINARY-RND. Using BINARY-MAP to make pitch and rhythm patterns.
Using GEN-BINARY-REMOVE to create new rhythms by removing targeted pitches.
How to use GEN-BINARY-CHANGE and GEN-BINARY-ANACRUSIS: to reduce the number of repeated pitches. Working with LENGTH-MERGE to 'add-up' repeated adjacent and similar pitches and lengths. Pitch looping in the left hand.
Ambitus functions are used to fit a list of pitches into a defined range or instrument compass. Three different approaches create new material from a simple pitch series: AMBITUS, AMBITUS with flat-invert and AMBITUS with series. Look out for GEN-PAUSE to make a 'silent' section in the piano left-hand.
Much of the composing here uses integer functions before the output is converted into pitch. The function ASSEMBLE-MAP makes mixtures of texture in the right hand. Articulation and dynamics are featured to highlight metre changes.
Creating 4-part chords from rows of integers. Using PITCH-MIX, the global seed function INIT-RND and employing a fermata at the end of each phrase.
Creating binary rhythmics with COMBINATION2 and then randomising orders of lists with RND-ORDER. The PITCH-EXPANSION-SERIES function is used to generate variants on the 5-note theme by interval variation.
Two different ways of mapping note-length to pitch within a list. The default 'skip' and the binary template 'swallow' are put together in a single texture, and the function GEN-PAUSE articulates moments of silence in sections.
Deriving chords from rows of pitches. Making a chord progression using SUBSTITUTE-MAP. Creating melodies from chords using PITCH-MELODIZE. Moving melodies and chords between both hands with INTERLEAVE-MAP.
Creating variables as rhythmic lists from note-lengths and rest-lengths. Using the note-length shorthand function QL. Mapping a pitch range to a pattern of vectors produced by the sine-wave generator GEN-SINE.
Using some of the many functions associated with composing with intervals and serial techniques. Producing and auditioning a rhythmic sketch before adding pitches. Pitch material developed from a single pitch-class set.
Making 'original' tonalities with CREATE-TONALITY. Function tools TONALITY-MAP. HARMONIC-PATH and TONALITY-SERIES are introduced for making and mapping integers lists onto defined tonalities.
A Slonimsky pattern and the all-interval tetrachord use TONALITY-MAP and TONALILTY-SERIES to form left hand piano chords to the bass line of Giant Steps! Pitches and dynamics from the GEN-SINE function and a play of rhythmic variables build a left hand improvised 'solo'.
From the Chorale of Lesson 18 a version for piano trio is created. The de-mixing of chords into separate parts with PITCH-DEMIX is introduced and how string instruments with multiple articulations are included within DEF-SOUND-SET.
A piece in 3 parts for solo guitar demonstrates how polyphony can be notated on a single stave. The function MERGE-VOICES is used and features in the part 2 of the composition. Three separate score-scripts are present in this file and these are sequenced together in the final COMPILE-SONG expression using the keywords :start and :end.
A piece in Ragtime-style is made using pitch and rhythm material from user-defined Libraries. There are three functions associated with Libraries: CREATE-LIBRARY, DEF-LIBRARY and LIBRARY. There’s an example of how to use the sustaining pedal with the keyword :controllers.
This piece is a version of Lesson 7 enhanced by tempo change and a Latin percussion part. It employs two different approaches to setting the keyword :tempo in DEF-SCORE: one with a simple tempo list containing tempo values configured to each bar/list; the second using delta time to enable smooth accellerando and rallentando across any number of bars. The percussion part shows some of the shorthand OMN notation for note-lengths and rest-lengths.
OM has a multi-keyword function GEN-CLUSTER. The function able to output chords, melodies and mixtures of the two. Here, two distinct sections of ‘cluster material’ are bound to additive rhythms and dynamics and made into OMN lists. A range of repeat signs, ornaments and articulations such as trill, acciaccatura, mordent, arpeggiation, glissando are added manually to these lists to further colour the music. The function GEN-PAUSE is used to split keyboard action between the hands.
Next page Lesson 1. Creating and Processing a List