Rhythm trees can also be expressed with simple proportion lists, which ignore the duration and time signature levels. At a basic level, OM always interprets proportions according to two criteria :
This way of writing rhythm trees can lead to very interesting processes in the manipulation of temporality. A given rhythmic structure can be modified or read according to various beats patterns, by associating given proportions to more or less sophisticated functions or programs.
Proportions can be expressed with integers, floats or ratios. Nevertheless :
In both cases, OM renders an approximation of the rhythm tree.
The mktree function allows to associate a list of proportions to a list of time signatures.
Silences are expressed by negative values.
Values within a group are beamed automatically.
Add .0 to create a tie with the previous note.
Dotted values are "naturally" expressed by relevant proportions, in the case of "binary" time signatures – n/ 4, n/ 2, n/1 –, or elementary ternary time signatures – 3/8, 3/16.
In other cases – 6/8 and its paradigm –, OM's behaviour doesn't always apply the conventions of traditional notation. Proportions can be expressed with different but equivalent rhythmic notations, depending on the values used in rhythm trees.
A set of functions dedicated to rhythm tree is available in the