[PD-dev] print in pyext

Sukandar Kartadinata sk at glui.de
Wed Feb 25 21:08:05 CET 2004


Hi list,
I have encountered a strange behaviour with multiple outlets in pyext 
in combination with 'print' commands from within the Python code.

First, however, I'd like to thank Thomas Grill (and whoever else might 
be involved) for this wonderful extension to pd - it's really a 
flashback to those days when Pyrite became available for MAX. And much 
more!

now to illustrate the problem here's the pd as well as the py code:

sequence.pd:
#N canvas 0 0 454 304 12;
#X obj 168 131 print >>>;
#X obj 125 155 print >>;
#X obj 83 103 pyext sequence test;
#X msg 125 74 bang;
#X connect 2 1 1 0;
#X connect 2 2 0 0;
#X connect 3 0 2 1;

sequence.py:
try:
     import pyext
except:
     print "ERROR"
class test(pyext._class):
     _inlets=3
     _outlets=3

     def bang_1(self):
         print "pyext entered ----------------------------"
         print "something else"
         self._outlet(2,'output2')
         self._outlet(3,'outlet3')


The problem is that sometimes when [bang] is clicked the outlet 3 
doesn't fire. One of the following clicks however will actually 
"retrieve" that lost message, i.e. outlet 3 fires twice.

Sometimes one has to click a 100 times on bang before it happens, 
sometimes one has to click very fast, sometimes the "clicking rhythm" 
has to be changed, sometimes though it happens right on the first click 
after the patch is loaded.

Removing the second print command results in far less dropouts, but 
they still happen. More prints make it worse. I am not sure wether it 
happens with less outlets.


Of course, I have gotten rid of all print commands for the moment, but 
I'd be still curious to know wether this is a known problem and if 
there might be a fix.
Or, maybe, you can't reproduce it, like with my strange 
crashing-on-floats-bug I reported a while ago.... (which still persists 
btw)


Thanks,
Sukandar





More information about the Pd-dev mailing list