Forwarded conversationSubject:
Pure Data assimilation------------------------
From: Luke <lukexipd@gmail.com>
Date: Fri, Oct 2, 2009 at 12:45 PM
To: Field-development <field-development@googlegroups.com>
Yo guys,
I saw your MaxPlugin, which looks incredible. I just wanted to
suggest also taking a look at the open source older brother of Max,
Pure Data (the continuation of Max/MSP by Miller S Puckette, the
original developer)
http://puredata.info/ http://www-crca.ucsd.edu/~msp/software.html (IRC)
http://wiki.dataflow.ws/DataFlow Pd has a nascent concept called "Data Structures" that allow creation
of graphical scores directly representing their underlying data – it
seems to me Field is that from 100 years in the future, so it would be
a very natural marriage.
I'd love to help with this where I can.
Best
Luke----------
From: Marc Downie <marc@openendedgroup.com>
Date: Fri, Oct 2, 2009 at 12:51 PM
To: field-development@googlegroups.com
That's a very good idea — the truth is Max/MSP's proprietary-ness (and it's difficult copy protection) is not good.
What's the Java embedding story in Pd like? We are using mxj to poke a hole in Max that Field enters through.
Marc.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Field-development" group.
To post to this group, send email to
field-development@googlegroups.com To unsubscribe from this group, send email to
field-development+unsubscribe@googlegroups.com For more options, visit this group at
http://groups.google.com/group/field-development?hl=en -~----------~----~----~----~------~----~------~--~---
----------
From: Al Matthews <prolepsis@gmail.com>
Date: Fri, Oct 2, 2009 at 12:58 PM
To: field-development@googlegroups.com
Cool I was wondering about that. On behalf of maybe others like me only laxly tracking source at the moment, I'll add this request for a bit of technical spec, about the MAX plugin as it presently stands.
More generally, is Field's timeline available or conceived here as a sort of scheduling supplement for MAX events? Scheduling seems historically a kind of weakness of MAX for composition, until you add java or whatnot.
Also a bump for the PD.
Al Matthews, Programmer Support Specialist
Archives and Special Collections,
Robert W. Woodruff Library,
Atlanta University Center
amatthews@auctr.edu prolepsis@gmail.com1 404 978 2057, direct
1 337 214 4688, gvoice
----------
From: Marc Downie <marc@openendedgroup.com>
Date: Fri, Oct 2, 2009 at 1:16 PM
To: field-development@googlegroups.com
As always, more doc's are on the todo-list.
But the trick is essentially this. mxj — which is a standard box in Max — lets you instantiate java objects. We provide two — one that does the bookkeeping and network communication (MaxFieldRoot) and another that wraps up a Jython environment (MaxField).
The source for both of these is inside /extras/maxfieldMXJ — there isn't much to them.
MaxFieldRoot knows the names (that is what max calls the "scripting names") of all MaxField objects in a patch (and subpatches) and it opens two OSC ports for communication with Field.
MaxField objects when loaded get Jython up and running and execute a startup script that provides some functionality (like the magic function that makes autocomplete work) — this script is maxfield/__init__.py
Field's side of the bargain is to capture attempts to execute things inside boxes that are marked as "bridged to max" and, rather than executing them, sends them via OSC to Root which then dispatches them to the appropriate MaxField box which then executes the Python code. So sticking a bunch of Field boxes in a timeline and scrubbing them "scrubs" the sending and execution of code in Max. You could probably build less latency-prone and more accurate timing as well using this (you'd send all the box positions over to Max and use it's timing stuff). But this works well for our uses right now.
This code is field.extras.max.MaxExecution. You'll find it's a lot like the ProcessingPlugin — which defers execution of python code not to a separate process but just later in time — until we are "inside" the draw() method of the Processing Applet.
So, basically, we need to be able to run just a little bit of Java (and in turn all of Jython) inside Pd to bootstrap the whole thing.
Any Pd Java experts out there?
Marc.