Abstract
λGTK (LAMBDA GTK) is a new, portable graphics layer for implementing graphical user interface (GUI) tools in Common Music [1] (CM), an algorithmic music composition environment that runs in Common Lisp [2] and Scheme [3]. λGTK provides a complete interface to the popular GTK2 [4] graphics libraries and currently supports the development of graphical displays in three different public domain Lisp implementations on two different operating systems. Two full-featured GUI tools for Common Music - a music data visualization tool called Plotter and an executive "front end" window called CMIO - are briefly described as examples of λGTK functionality. A key feature of λGTK is that it is generated programmatically from information parsed from GTK header declarations rather than coded directly by hand. One benefit of this implementation method is that larger (or less inclusive) interfaces can be generated on demand so Lisp applications only need to load bindings for entry points in the GTK libraries that they actually use. Porting λGTK to new Lisp implementations is also much less work than if the layer had been coded by hand, and resolving errors and other porting issues is now a global operation (regenerating the layer) rather than a local one (finding each affected entry and editing it by hand in a text editor). To port λGTK to a new Lisp the developer simply provides "back end" functions to the generating program that translates the system's intermediate Lisp representation of GTK's data structures into the appropriate foreign function interface (FFI) code for the new target host. The λGTK layer itself does not depend on anything in Common Music and is available as a separate, free software package released under the Lisp Lesser General Public License (LLGPL).
Original language | English (US) |
---|---|
State | Published - 2005 |
Event | International Computer Music Conference, ICMC 2005 - Barcelona, Spain Duration: Sep 5 2005 → Sep 9 2005 |
Other
Other | International Computer Music Conference, ICMC 2005 |
---|---|
Country/Territory | Spain |
City | Barcelona |
Period | 9/5/05 → 9/9/05 |
ASJC Scopus subject areas
- Computer Science Applications
- Media Technology
- Music