OpenMusic

Visual Programming | Computer-Assisted Composition

OpenMusic Tutorials

Prev| Chapter 6. Using Musical Objects II| Next


Tutorial 18: Generation of a note sequence by interpolation between two

chords

Topics

Using random elements and interpolation to generate a sequence of notes between two harmonic areas.

Key Modules Used

interpolation, omloop, repeat-n, flat, Chord, Chord-seq

The Concept:

In this tutorial as in previous ones, we will use randomly generated notes from particular chords to construct a sequence. This time, however, these chords are the result of an interpolation between two seed chords we choose. The first chord is in the lower register, and the second is in the upper register. The result of the interpolation will be an ascending sequence of chords and so will be the general tendancy of our generated note sequence.

The Patch:

We have choosen two chords of same density (i.e same number of notes) in Chord (A) and Chord (B).

The module interpolation (C) will interpolate between these two chords using n steps. In our example above we have chosen to create 12 steps (chords A and B included). The last argument of interpolation defines a curve for the calculation. A curve of 1 is linear, meaning that the arithmetic midpoint of the interpolation will fall exactly 50% of the way through the steps. In a non-linear interpolation specified by values smaller than 1 (but greater than 0) or greater than 1, that midpoint will be displaced towards the front or back of the sequence. This is easier to understand if you can see it. Open the Chord-seq at (D) and check out the interpolation with _curve_ of 1.0:

Now, replace the _curve_ argument of interpolation with .3 and evaluate. Notice that the intervals between chords are greater at the beginning of the sequence. Now replace _curve_ with 1.7 and reevaluate. Notice how the large intervals are now towards the end of the sequence. Reset _curve_ to 1.0.

In order to apply the same process as in Tutorial 16, (picking n random samples from each chord of the interpolation) we will use omloop (E):

In listloop will enumerate the elements of our interpolation one by one for each repetition of the loop. nth-random will randomly choose one note of each of these chords. Connecting nth-random’s output to a repeat-n module will repeat this n times on each chord. Notice that repeat-n’s second input is getting data from an additional input that we named _n-samples_ in order to choose the number of times we want to sample each chord from outside omloop’s editor window (in our example it is 4 notes per chord, see the general patch). All results will be collected by collect and ouput by finally.

As in the last tutorial, the output of omloop will be a list of lists equivalent to a list of chords when plugged into Chord- seq. In order to have a sequence of notes instead of chords, we have to flatten the list with the function flat.


Prev Home Next
Tutorial 17: Generation of a melodic sequence from harmonic reservoirs    
Up Breakpoint Functions