Tutorial 16 - Introduction to omloop II


Using omloop with listloop


Functions used

omloop, list, om+ and om-




In this tutorial we will harmonize each note of the melody by adding one upper note at the given interval and a lower one.

Patch structure

A: Edit your series in the CHORD object (A) after setting it in 'order' mode.


Choose in B your desired interval. (in the example above 1100 midics represents a major seventh).

Add two inputs to omloop before openning its editing window, (this is made by selecting its icon and option-right arrow twice). Then open omloop's editing window and name these inputs as shown below. (Giving a name to inputs is not necessary, but it is practical specially when using complicated patches with many variables.Documenting patches is a good method to keep track of data and patch functionality).


In order to enumerate each element of the list coming from CHORD, use listloop (A). Now create a patch (B). Notice that whenever a patch is created within a patch (in the same manner as we may call a function by command-click), this patch will appear as a red patch. Let us open the patch:

After creating two inputs and one output (c.f tutorial 8 ) name them as in the example above. In 'Pivot' we will have an enumerated note from the melody, while 'interval' is the choosen interval in midicents (in our example we have choosen 1100 midics). list function will group first the upper interval (note +1100 midics) , then the enumerated note and finally the lower interval (note - 1100midics).

All results will be collected using collect and sent to the output finally (D). The output of omloop will be a list of chords which is a list of lists (a chord is a list). You can listen to the sequence in the CHORD-SEQ (D) which is connected to omloop's output.