GUI plugins in Pd 0.43
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 GUI, mostly in the form of the pd-gui process where Tcl/Tk is running. While all code related to the GUI 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 GUI and its behaviors using plugins.
Pd users have a wide range of ways of working, skill levels, etc. and how people use and interact with the Pd GUI is a very personal experience. Pd 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 GUI should behave, with opposite ideas in direct conflict yet both equally valid. Therefore it should be possible to easily and maintainably modify the GUI in a way to makes it feasible for a wide range of Pd users to customize their own GUI.
Currently a GUI plugin is a script that is written in Tcl that adds or modifies code in the ‘pd-gui’ side of Pd. ‘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 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 GUI elements to the patch window, Pd window, or dialog panels. Not all ideas for the GUI are currently feasible in a GUI plugin. One notable example is segmented patch cords since it would require a modification to the file format.
As some GUI 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 yet, and we have not had enough experience with widespread deployment and use of GUI 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 GUI plugins will be very useful to many people.
4th international Pure Data Convention 2011 Weimar ~ Berlin