What I was missing was an abstraction to implement variable (regarding probabilities) Markov Chains for Pure Data Vanilla. Here it is.

Where to put it, I asked myself. I simply put it here in the patch storage for the Organelle, since it is my platform anyway and was mainly made for it.

Instructions can be found in the “markov” abstraction. I hope it is explained in a sufficiently understandable way. But the help file is there as well. Otherwise, I am of course available to answer any questions if anyone wants to try it out.

If you don’t know exactly what you can use a Markov Chain for: It is nothing more than a random function in which the values â€‹â€‹(or events) can be weighted. This can be used, for example, to create sequencers or generators for notes (as shown in the video) that should be played with a certain frequency. There are lots of possible uses, especially if the randomness should be controllable.

https://en.wikipedia.org/wiki/Markov_chain

Note: In contrast to the video, in the current version the outlets for the node trig event and the determined graph for the next node have been swapped. Functionally no change, but it simply looks better. ;-)

This one is static. I’m already working on a dynamic one to support some phrase analysis.

Here is a small graph with three nodes that hopefully explains it well. This is generating the melody from the video. Basically, it is simple. But the more nodes you add, the more confusing it becomes. Therefore, it is better to plan a Markov chain on paper first. This makes implementation much easier.

Most important rule: All edges (i.e. the arrows) of a node must add up to 100 (percent). This ensures that a node is always hit and an event is triggered.

Second most important rule: If a graph (i.e. arrow) does not point to a node (e.g. due to a typo), the chain will stop working sooner or later. So: Every graph absolutely needs a target.

Then nothing can go wrong.

A picture is worth a thousand words.

Well, that’s a pity. The upload of images seems to be broken. Or maybe it has never worked?