From e854889b99b9e515dc69d237b1031b5705e83b60 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 9 Mar 2005 04:58:11 +0000 Subject: fixes for detached operation and single-threaded version use lock count instead of message queuing to avoid py->py messaging deadlock support for buffer objects (preliminary) updated build system little restructuring fixes for single-threaded compilation added support for numarray svn path=/trunk/; revision=2610 --- externals/grill/py/scripts/buffer.py | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 externals/grill/py/scripts/buffer.py (limited to 'externals/grill/py/scripts/buffer.py') diff --git a/externals/grill/py/scripts/buffer.py b/externals/grill/py/scripts/buffer.py new file mode 100644 index 00000000..4c81caab --- /dev/null +++ b/externals/grill/py/scripts/buffer.py @@ -0,0 +1,46 @@ +# py/pyext - python script objects for PD and MaxMSP +# +# Copyright (c) 2002-2005 Thomas Grill (gr@grrrr.org) +# For information on usage and redistribution, and for a DISCLAIMER OF ALL +# WARRANTIES, see the file, "license.txt," in this distribution. +# + +"""This is an example script for the py/pyext object's buffer support. + +PD/Max buffers can be imported to and exported from numarray arrays. +For numarray see http://numeric.scipy.org +It will probably once be replaced by Numeric + +- _import(buffer): copy contents from the buffer to a new numarray object +- _export(buffer,numarray): export contents of numarray object to the buffer +""" + +import sys + +try: + import pyext +except: + print "ERROR: This script must be loaded by the PD/Max pyext external" + +try: + from numarray import * +except: + print "Failed importing numarray module:",sys.exc_value + +def mul(*args): + c = pyext.Buffer(args[0]) + dst = c.array() + dst[:] = 0 + a = pyext.Buffer(args[1]).array() + b = pyext.Buffer(args[2]).array() + dst += a*b + c.dirty() + +def add(*args): + c = pyext.Buffer(args[0]) + dst = c.array() + dst[:] = 0 + a = pyext.Buffer(args[1]).array() + b = pyext.Buffer(args[2]).array() + dst += a+b + c.dirty() -- cgit v1.2.1