I decided I prefer writing normal logic in a language I’m used to, so I went looking for a Python-external for Pure Data. And sure enough, I found Thomas Grill‘s py/pyext (built upon flext, a C layer for Python externals). I didn’t figure out how to install the binaries (didn’t take the time to experiment) so I just compiled them up. Works great.
Writing externals for this is supersimple:
class example(pyext._class):
_inlets=2
_outlets=1
def _anything_1(self,args):
print "inlet 2:",args
self._outlet(1,1)
def _anything_2(self,args):
print "inlet 2:",args
self._outlet(1,2)
This little code should be an external that prints out the argument it receives and sends the inlet number it received the signal on to the outlet.







Get it here
Hi,
Is it possible to write externals that make function calls in python?
In other words, can you communicate with a driver using python code?
Phil
Haven’t tried with a driver, but anything you can do in Python you should be able to do through an external. For DSP work I suppose there is a real-time criteria, though
Hi Niklas,
two small remarks:
- the syntax with _inlets and _outlets defined within the class is deprecated. You should define the number of inlets and outlets as creation args of the pyext object, like [pyext 1 1 mymod.myclass]
- flext is a C++ layer for cross-platform externals (between Pd and Max)… it’s not specifically for Python, although pyext uses the flext library.
have fun, Thomas
Hi Thomas, thanks for your update. I should really get around to writing an update of what the world looks like in 2010