Skip to content

Python/Pd - Exchanging Data

These are the methods used to send data from Python to PureData. The inverse path is done mainly with run and key messages.


pd.out

pd.out() allows you to output data to PureData without needing to wait for the Python function to finish executing. This is different from returning data to PureData using the return statement, which requires the function to complete before sending data.

  • Example

    For example, consider the following function:

    import pd
    
    
    def example_pdout():
        for x in range(10):
            pd.out(x, symbol="loop") 
            # output in outlet 0
    
        pd.out("fim", symbol="end", out_n=1) 
    
  • Arguments

    Parameters Type Description
    arg1 Python Object Python thing that will be outputed.

    Kwargs Type Description
    symbol string It prepend the string in the output, can be used with route object.
    out_n int Index of the outlet used to output.

pd.send

You can use pd.send to send data to a receive object in your PureData patch. This method takes in two arguments: the name of the receive object and the value you want to send. For instance, suppose you have a receive object named "myReceiver" in your patch. To send the value 42 to this object, you could use pd.send("myReceiver", 42).

  • Example

    import pd
    
    
    def pd.send():
        """It sends a message to 
        the py4pdreceiver receive."""   
    
        pd.send("py4pdreceiver", "hello from python!")
        pd.send("py4pdreceiver", 1) 
        pd.send("py4pdreceiver", [1, 2, 3, 4, 5])
        return 0
    
    Info

    In this example, it will send to py4pdreceiver the message "hello from python!", then the number 1, then the list [1, 2, 3, 4, 5].

  • Arguments

    Parameters Type Description
    arg1 string Name of the receiver object.
    arg2 Python Object Data that will be sent.

pd.tabwrite

pd.tabwrite is a method that is essentially a copy of the tabwrite object in PureData. With this method, you can write audio or any data supported to PureData array.

  • Example

    import pd
    import numpy as np
    
    def randomNumber(len):
        randomNumbers = np.random.rand(len)
        pd.tabwrite("table2test", 
                    randomNumbers, resize=True)
    
  • Arguments

    Parameters Type Description
    arg1 string Name of the table.
    arg2 Python Object List or array (numpy) of numbers.

    Kwargs Type Description
    rezise Boolean Set if the table will be resized or not.

pd.tabread

pd.tabread is a method that is essentially a copy of the tabread object in PureData. With this method, you can read data from a PureData array directly from within your Python code. It will return one Numpy Array with the data of the table.

  • Example

    import pd
    import numpy
    
    def readFromArray():
        valuesFromArray = pd.tabread("py4pdArray", 
                                     numpy=True)
        multi = numpy.multiply(valuesFromArray, 2)
        return multi
    
  • Arguments

    Parameters Type Description
    arg1 string Name of the table.

    Kwargs Type Description
    numpy Boolean Return a list instead of a numpy array when False.