PDCON:Conference/GUI Plugins in Pd 0.43

From Medien Wiki
< PDCON:Conference
Revision as of 22:05, 6 October 2011 by Max (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.



Kreativfonds Bauhaus-Univeristät WeimarElectronic Arts Blog für digitale SpielkulturThe Mozilla FoundationAllied Vision TechnologiesFreistaat ThüringenBauhaus-Universität WeimarHochschule für Musik Franz Liszt WeimarFraunhofer Institute for Digital Media Technology IDMTStadt WeimarKlassik Stiftung WeimarNKFaculty of MediaStudio for electro-acoustic MusicKulturTragWerk e.V.Elektronisches Studio der TU BerlinMaschinenraum Hackerspace WeimarRadio Lotte WeimarSponsors and partners of the 4th internationals Pure Data Convention in Weimar 2011

4th international Pure Data Convention 2011 Weimar ~ Berlin