This package allows you to write patches for PureData in Python.
python -m pip install puredata-compiler # requires Python >=3.5
The compiler gives you creator functions to compose a patch. These functions add elements to the patch, using the content and connections you provide.
from puredata_compiler import Patch, write_file
def example():
"""Patch that increments a counter"""
patch = Patch()
obj, msg, floatatom, connect = patch.get_creators('obj, msg, floatatom, connect')
bang = msg('bang')
delay_params = msg('500', new_row=0, new_col=1)
delay_trig = obj('t b f', delay_params[0])
delay = obj('delay', delay_trig[0], delay_trig[1])
start_val = obj('f', (bang[0], delay[0]), x_pos=25, y_pos=125)
increment = floatatom(new_row=0)
current_val = obj('+', start_val[0], increment[0])
# connect is different - it takes an existing element and adds connections,
# so you can create circular structures
connect(start_val, (), current_val[0])
current_val_display = floatatom(current_val[0])
return patch
if __name__ == "__main__":
pd_example = example()
write_file('pd_example.pd', str(pd_example))