< Back to IRCAM Forum

Omalea | ana-mark1 / ana-mark2

Hi!

I can’t figure our how to use ana-mark1 / ana-mark2 from the omalea library correctly - any short examples out there?

Thanks in advance!

/phil

Hi Phil. First of all, ana-mark2 has a bug in it (fix in attached ).

The idea is to do a markov-analysis of ‘data’, resulting in a list of weights pr. transition in the original (‘data’). This matrix can then be fed to one of the functions generating new patterns more or less similar to the original.

It seems both ana-mark1 and ana-mark2 are for some special use-cases, where the user is expected to include the data-space explicitly, while ana-mark just takes the data and beleives its reasonable. i’ve included a patch showing some simple examples.

All these seem rather awkward to me, and presumably designed for some very special use-cases in one project? We really need CMs pattern support in OM… (i’m hoping to get get some time to do that soon).

ana-mark2-fix.lisp (1.09 KB)

Thank you, Anders.
If I understand the lisp files correctly, these objects only work with lists, not with a list of lists.
CMs pattern in OM would be great, markov-analyze works with lists of lists - good for chord/spectrum patterns.

Indeed, they’re not general at all, and only 1st-order analysis it seems.

You’ll have to ask the others around here, but i would be surprised if there weren’t any more general functionality vs. markov-analyze (arbitrary data and order), and generating new sequences based on those, already laying around somewhere in OM.

Hi Phil, Anders,

Sorry for beiing too late, may be, but
I hope it could help…
First the set “ana-mark” objects are intended to calculate first order markovian matrix from a flow of data.
The markovian matrix returned comes as a list of lists. Each sub list being a transition probability vector from “i” state.
The order of the transition probability vector corresponds to a given “i” state or to a given element from the “data space”.
For example if my data space is (a b c d e), the first sub-list of the markovian matrix, will correspond to the transition of the element index “0” .
Ana mark-object takes a flow of data and returns the the data space and MArkov matrix. first sub-list : data space, second sublist : markov matrix in a list of list
ana-mark1 analyses a flow of data and calculates the MArkov matrix to a given data space. For ana-mark1 you need to give (in the second input) the data space. Be carefull, you must to give the right data space number elements, and as was said,
<The order of the transition probability vector corresponds to a given “i” state or to a given element from the “data space”.>

ana-mark2 analyses a flow of data and calculates the MArkov matrix to a given data space. but only returns the markovian matrix…

And, ana-mark2 had a bug… As attachment, you will find a folder with a new file <random-walks.lisp> to put at the place of the old one
(/Applications/OM\ 6.9/libraries/OMAlea/sources/random-walks.lisp )
and a small patch using these three objects…

have fun

Mikhail

ana_marks.zip (4.86 KB)

Thanks, Mikhail, for your reply and the examples.

Do you now if there exists an object, similar to ana-mark1, that would work with a data flow e.g. ((1 2) (1 2) (3 4) (2 3) (1 2) (2 3)) and the corresponding data space of ((1 2) (2 3) (3 4)) ?

Regards, phil

hi Phil,

not yet… but I’m planning to make some updates on om-alea (she is more than 20 years old !!!),
for now, may be this abstraction could help. It is supposed to work with “almost” any kind of data…

have fun…

Mikhail

Ana-mark000.omp (16 KB)

Works fine for me - and faster than the hack I made…

Thanks a lot!