[PD] communicating with the shell

patrick puredata at 11h11.com
Wed Jan 28 20:50:32 CET 2009

another solution is with pyext.
in pdmtl abstractions it's under linux.process.pd (but i think it should 
work on windows and mac (not tested)).

import sys, os, time, signal, subprocess
    import pyext
    print "ERROR: This script must be loaded by the PD pyext external"

class sub(pyext._class):
    """A simple script to start and stop process"""

    # number of inlets and outlets
    def __init__(self,*args):
    def start_1(self,a):
        global process
        process = subprocess.Popen(str(a))
        self._outlet(1, 'opening '+str(a))
    def stop_1(self,*a):
        os.kill(process.pid, signal.SIGTERM)
        self._outlet(1, 'stopping process '+str(process.pid))

More information about the Pd-list mailing list