[REBOL] Re: Laccio Framework >> PD PureData inspiration
From: jasonic:nomadics at: 22-Aug-2007 22:56
Alessandro Manotti wrote:
> Hello Jason,
>
> I not yet red your links (I will do as soon as possible !).
> If I understood what you say (I'm sorry, I'm Italian, and sometimes english
> language could be not so clear for me!) you think I could implement
> something to let the components communicate one with each other in a easy
> way?
>
Yes..
1) I believe PD PureData offers a superb interface metaphor/paradigm for
your components and for Rebol3.
2) PD has an open source API. That means *someones* [not me alas] could
write a Rebol interface to PD.
Then all sorts of cool modeling could happen very quickly, including
hopefully engaging a larger very creative community of
programmer-musicians-experimental innovators.
One could also join the rebol parts via PD to lots of others... yay!
Ruby Python and other languages have been used to write PD patches. In
general this is because people want to do something in PD and use the
language they know and love.
However, it can also work the other way around -- I'd call it "host
system and interface symbiosis" ...
The Wiki for PD API is
http://www.puredata.org/docs/developer/PdAPI
and one example using that, which I just found googling is
http://www.le-son666.com/software/pdj/
PDJ enables you to write java code to interact with pure-data objects.
another ...
mxdublin a Java/Python framework that can be used to sequence generic
events within pure-data or max.
http://le-son666.com/software/mxdublin/
uses Jython = Python implementation written in Java << ouch wow cool
3) The design philosophy is very familiar--- PD REBOL Laccio
fertile ground I think.
4) I also imagine/hope that a PD-inspired interface could be written in
100% rebol -- actually R3 [rebol3] probably best.
That would mean a light, fast, 100% rebol graphic interactive user
interface toolkit could support inter-component inter-system
communications and instrument building.
beautifully so :-) -- many advantages including opening access to
non-rebol programmers USE of such tools.
5) You might find this is perfect -- or too much, but inspiring none the
less I hope.
6) A delightful design feature of PD is that PD files ["patches" they
are called] are just simple TEXT files - interpreted by the PD
environment as dynamic interface.
You have to install and play with it to understand what I am talking
about really. It's a rich universe and thriving community.
But here's an example from the interactive user Manual when you install
the software.
'patch' = a file called 04.messages.pd
If you open that in PD it looks like this screen shot [but it works]
If you open in a text editor it look just like this:
#N canvas 0 0 595 446 12;
#X floatatom 225 110 0 0 0 0 - - -;
#X floatatom 184 109 0 0 0 0 - - -;
#X msg 184 56 5 6;
#X floatatom 132 108 0 0 0 0 - - -;
#X floatatom 64 105 0 0 0 0 - - -;
#X text 30 21 Most Pd messages are just numbers or short lists of numbers:
;
#X msg 64 55 5;
#X obj 64 80 + 9;
#X obj 132 83 +;
#X obj 184 84 unpack;
#X msg 288 55 5;
#X obj 288 107 print;
#X obj 288 81 pack 34 78;
#X msg 132 55 5 6;
#X floatatom 195 328 0 0 0 0 - - -;
#X obj 195 303 +;
#X msg 195 254 1.2 3.4;
#X msg 205 277 5 6;
#X text 36 206 Unlike Max \, in Pd all numbers are floating point.
Numbers whose values happen to be integers are displayed without decimal
points.;
#X text 31 363 For more on messages \, get help on any message box
by right-clicking.;
#X text 329 409 updated for Pd release 0.33;
#X text 34 149 If you send a list to an object with more than one inlet
\, the items in the list are spread out over the inlets \, as seen
in the 5+6 example above.;
#X connect 2 0 9 0;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 8 0 3 0;
#X connect 9 0 1 0;
#X connect 9 1 0 0;
#X connect 10 0 12 0;
#X connect 12 0 11 0;
#X connect 13 0 8 0;
#X connect 15 0 14 0;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
hope this makes sense
regards
Jason