On Nov 21, 2007 12:18 PM, Veli-Pekka Tätilä
Given that PD is described as a data flow language is there a textual, human readable and writable format, in which I could do PD patches without the graphics? Put another way, what did the author use for debugging before the GUI? At least there's some kind of exchange format for Max. So I could probably write perl scripts around that, as a desperate measure. Can I run PD on the command line as well?
the file format is described here. http://puredata.info/docs/developer/fileformat I don't know if it actually is "human readable" but you could probably figure out of writing patches with text (or develops your own frontend). The thing is that pd's server-client architecture is not all that well designed so I am not sure if you could get far with it. You may wish to take a look at DesireData https://devel.goto10.org/desiredata which is for of Pure Data and where the server client separation is hopefully better. This project isn't necessarily moving along very quickly but perhaps with higher user-base (and maybe some coding help) it could develop into something worthwhile. The main developer is pretty busy with various other projects. What might interest you even more, is nova https://tim.klingt.org/nova/ another PD fork which also separated server-client architecture and AFAIK you can describe the dataflow with a textual syntax. I have not used it yet but although it's fairly young project, Tim is apparently using it already for live performances. I did not follow this discussion up til now so I am sorry if I miss some important point, but perhaps CSound would be an option for you. The drawback of yousing CSound is that it is not really suitable for making sounds "live" (you must define your instrument and compile it before you can use it) but there are interfaces made for Java, C#C++, Tcl, Python, Lisp and whatnot which allow you to use CSound from within those programming languages. Perhaps it could lead to some highly personnalized and specific use.
Ideally I'd definitely hope there's a dedicated language, to which format do the graphical widgets reduce internally, is there PD bytecode like there's a virtual machine in ChucK?
No, pd is not a compiled language. Unlike supercollider, csound, chuck, the file simply describes the order in which various objects are connected. The beauty of it is that the audio processing runs all the time while you patch so you don't have to reload the file everytime you make a change.
So something Altera like, with Perlish slices, Ruby:ish anonymous functions and other goodies would be ideal i.e. too good to be true. NOt to mention ChucKian time handling, that's something I like very much along with the assignment operator.
Nova might be your cup of tea but I am afraid it follows the PD model of audio signal treatment which is block based. By default those are 64 sample blocks. Youcld run it at 1 sample blocks but it becomes very inefficient for real-time work at that point. Hope that helps, ./MiS