[PD] passing integers

Krzysztof Czaja czaja at chopin.edu.pl
Mon Jan 21 12:52:01 CET 2002

hi Orm,

Orm Finnendahl wrote:
> altogether. But why did you suggest the linked list structure? I

You did (in a previous post):

> time ago. It stores elements in two data structures: (1.) A table,
> implemented as linked list, which defines the succession of elements

The example of struct _event { struct _event *next; float data[1]; }
meant using a continuous array (`data' field) as a multi-dimensional
event value, while linking successive events.  One would call (in Pd)
getbytes(sizeof(struct _event) + (<ndimen> - 1) * sizeof(float))
to allocate an event.  Of course the event sequence as a whole may
also be stored in a large (possibly growable) array.

> Not really. I attached a markov object to the live performance of an
> improvising pianist, capturing pitch, velocity and timing and the
> object could play along in realtime after only a couple of seconds,
> continuing the stuff of the pianist in much the same manner and style,
> as he did.

What I meant was this:  say, after range checking and quantizing
we have 80 pitches times 80 velocity levels times 80 durations (or
deltas?) which gives 512000-element sample space.  With an average
density of around 10 events per second, transition matrix would
still be nearly empty after few seconds.  In such case there would
be no branches, and plain markov process would keep generating
exact imitation of live performance sequence for much longer then
few seconds -- unless previous knowledge was applied.  But now
I see that your external is much more flexible than that (with
`margin', `mutation', and various `modes').  Btw. such effect of
gradually deviating imitation may be interesting in its own right.

> To store only one dimension is normally not sufficient to capture
> musical events. It gives a completely different result if you seperate

Yes, I was not precise -- I meant vector quantizing (representing
similar events as equal), and _not_ projecting into one-dimensional
space.  Since deciding what is `similar' is not easy, and usually
involves costly clustering techniques, this hint was misleading.


More information about the Pd-list mailing list