chaines de markov

Markov chains and musical sequences generation with OMAlea library functions and distributions 2/2

Continuation of the previous article, we will explore the alea-seq , random-walks and tools folders.


This function uses the uniform distribution to generate a random sequence in a range of plus or minus an interval around a central note. Here +/- a fifth (7) around C (6000) giving notes between Fa2 and G3.

chaines de markov



chaines de markov

Same as above except that the upper and lower limits are specified by the heights instead of a range +/-.

This function worth much for being random continuously which can generate micro-tonal sequences.

The difference between equal temperament distributions and micro-tonal distributions reside in the fact that they fall within discrete process and continuous  process respectively. One could say: smooth space and striated space, dear to Gilles Deleuze and Pierre Boulez.


Distribution triangulaire

chaines de markov

Another random or stochastic distribution. Also allows micro-tones.


1 sur f

chaines de markov

1 / f generates a value according to the distribution of the same name. Values range between 0 and (2 ^ n -1) from a starting value called <last>.

If n = 2 the values are between 0 and 3

If n = 4 the values are between 0 and 15

If n = 7 the values are between 0 and 127

I find this 1/f distribution interesting by its average around a tight ambitus  and, at the same time, unpredictable and sometimes tremendous differences.

 Brownian Motion

Brownian motion generates intervals according to the <sigma> Gaussian distribution with a start  note and upper and lower limits.

chaines de markov

chaines de markov


chaines de markov

Randwalk 1&2

chaines de markov

Randwalk2 operates in midicents therefore does not provide micro-tones. To get this one must instead use randwalk1 then scale multiplying by 100.

 Markov Chains

Here we leave randomness for statistics.

The three functions ana-mark, mark1-ana, ana-mark2 have a particular setting that I forgot with the disappearance of the tutorial. Markov1 works perfectly fine with position index, which can be also very interesting. There is an example in the patches folder.

So I graphically reconstructed the process with an analysis phase and a synthesis phase:

chaines de markov

I won’t explain each patches and sub-patches, that would be too tedious, you can find them in the random-walk folder.

Briefly: “markov analyse” generates a transition matrix (out1) and the set of values, the area, called finite state space in out2, whose matrix (out1) governs transitions. “Markov synthesis” meanwhile, takes the two lists provided by “Markov Analyse” (in1 and in2) over an argument defining the initial state (in3) and the length of the sequence to be obtained (in4).

We must insist on two points:

  • “Markov synthesis” patch being recursive, the first-elem argument (initial state) must be a list.
  • The value of the initial state must always be included in the analyzed finite space state.

chaines de markov

chaines de markov

Markov Chain’s process statistical, you must provide a model which will, moreover, not necessarily be music.
I recommend to read the article “What Is Composition?” by Giuseppe Englert on the concept and role model in music composition.


Tools to filter and zoom the distributions, i.e to limit and change scale.

chaines de markov

I didn’t find any interesting use of filtre3 and filtre4 regarding the two firsts.

Zooms are also very interesting.

chaines de markov

Zoom functions match more or less to function om-scale.

One will note the difference, for those two tools, between elastic and absorbant boundaries.


Download the patches (2nd part) OMAlea Library (updated 2-Feb-2016)
Jean-Michel Darrémont



Concerning smooth and striated spaces:

“Penser la musique aujourd’hui” Pierre Boulez  Gallimard 1963

“Points de repère I – Imaginer” Pierre Boulez Christian Bourgois 1995

“Mille Plateaux” Gilles Deleuze & Félix Guattari Éditions de Minuit 1980