aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/py/scripts/buffer.py
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/py/scripts/buffer.py')
-rw-r--r--externals/grill/py/scripts/buffer.py46
1 files changed, 46 insertions, 0 deletions
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()