[PD] Scheduling events, libpd, and sequencing

Peter Kirn peter at createdigitalmedia.net
Tue Feb 15 23:56:36 CET 2011


> You accidently had html-mail switched on. :)

Argh. Stupid Thunderbird.

> In this context qlist and textfile are eqivalent: qlist is just a textfile with
> a metro/delay and a sender already built in. Both objects do things inside of
> Pd and the metros work with subsample accuracy. I don't think, you can take
> them as a model for communication with external processes: Once the file is
> loaded into a textfile's or qlist's memory, there's no communication with the
> outside world (network, harddisk, other processes) happening anymore.

Ah, okay, that's good to know.

I guess my main question was, what's the best way to send event lists
from the language to either of these objects?

> I think, a better model for realtime interaction might by OSC with timetags.

Right, but in an embedded context (i.e., pd embedded in another
language), OSC seems to me to add unnecessary overhead. See above
question.

> qlist can send lists just fine.  Both qlist and a textfile with sender/outlet
> and metro-timing simply send Pd messages like floats, symbols, lists, etc.
> It's up to the composer to define, what's describing an event and what
> describes a sequence.

Right, uh, but that's the *output* from those messages. (I don't think
either can receive as flexibly as that.)

The notion is that the language side of things - Java, C++,
Objective-C, Python, whatever -- will have the logic that determines
how events are scheduled, and would handle user input that might alter
the sequence of those events. The question is how best to have the
*language* communicate with Pd.

So, the structure would be:
external logic > message to Pd >  qlist/textfile scheduling inside Pd
> sound source in Pd > audio callback in the embedded instance

We'd continue to use libpd, but rather than assuming the Pd patch
contains logic for how the events are scheduled, those would be
integrated with the logic and interface contained in the code. (So, on
iOS, for instance, in Objective-C or something.)

Am I making a bit more sense? I was just unsure how best to handle
(and recommend to others how to handle) the interface between Pd and
the outside world, if Pd is acting in real-time but responding to
changing sequences from code written elsewhere, outside the logic of
the patch.

Peter



More information about the Pd-list mailing list