Author: Hans-Christoph Steiner
Download full paper: Media:GUI plugins in Pd 0-43.pdf
With the release of 0.43, there are some rather large changes in the source code focused on the Tcl/Tk side of the GUIGraphical User Interface, mostly in the form of the pd-gui process where Tcl/Tk is running. While all code related to the GUIGraphical User Interface was not rewritten, the vast majority of code running in ‘pd-gui’ was rewritten. One of the key features of the rewrite of ‘pd-gui’ is the ability to modify and extend the GUIGraphical User Interface and its behaviors using plugins.
Pd[[Pure Data]] a dataflow programming environment users have a wide range of ways of working, skill levels, etc. and how people use and interact with the Pd[[Pure Data]] a dataflow programming environment GUIGraphical User Interface is a very personal experience. Pd[[Pure Data]] a dataflow programming environment users find their own way to make it work for them, and often come up with new ideas of how it should work. There is often conflict over how the GUIGraphical User Interface should behave, with opposite ideas in direct conflict yet both equally valid. Therefore it should be possible to easily and maintainably modify the GUIGraphical User Interface in a way to makes it feasible for a wide range of Pd[[Pure Data]] a dataflow programming environment users to customize their own GUIGraphical User Interface.
Currently a GUIGraphical User Interface plugin is a script that is written in Tcl that adds or modifies code in the ‘pd-gui’ side of Pd[[Pure Data]] a dataflow programming environment. ‘pd-gui’ is responsible for loading the plugins, and it does so by looking for files that end in “-plugin.tcl” in the standard Pd[[Pure Data]] a dataflow programming environment search path. ‘pd-gui’ then reads in the plugin file and executes the code therein.
Right now it is possible to change the color of just about any existing element, as well as make modifications to the fonts and mouse cursors used, and even whether certain patch elements appear at all. It is also possible to bind to just about any key combination, mouse motion, or button clicks. It is also possible to add whole new GUIGraphical User Interface elements to the patch window, Pd[[Pure Data]] a dataflow programming environment window, or dialog panels. Not all ideas for the GUIGraphical User Interface are currently feasible in a GUIGraphical User Interface plugin. One notable example is segmented patch cords since it would require a modification to the file format.
As some GUIGraphical User Interface plugins have taken shape, there has been some work to smooth the process. This is all still very new and raw, there is not much of a real API[[wikipedia:Application Programming Interface]] yet, and we have not had enough experience with widespread deployment and use of GUIGraphical User Interface plugins, so we still figuring out how we should do this. It is perhaps not even clear that it is a a good idea, though the author believes that is starting to be clear that GUIGraphical User Interface plugins will be very useful to many people.
4th international Pure Data Convention 2011 Weimar ~ Berlin