This is another attempt to demistify the confusion about user interface, that musicians can be especially vulnerable to, as the art of performing relies on, but does not reduce only to the art of interfacing. There are people responsable for designing interfaces, which are in most cases not as preocupied with music as we may whish they were. To create an interface which would be performance-ready, involves substantial engagement from researchers, musicians and lots of resources, so only big commercial companies and well-to-do research institutes such as IRCAM or STEIM can afford it. When it comes to writing a simple computer program, things are rather trivial, but should still be understood the right way: there is always a part of the program which crunches data and a part which communicates to the user. The later is called GUI (graphical user interface) and is mostly made of widgets.
Widgets are standard ready-made graphical user interface software objects, most commonly used in UNIX and UNIX-like systems (Linux, Solaris...), and are interesting to anyone who wants to write a program. They can be windows, buttons, menus, drawings, text-fields and dialogs which combine specific appearance, user inputs and callbacks for actions, which the program executes, depending on the user's input. They mostly come pre-packaged as widget libraries with corresponding header files, such as X-Toolkit (libXt), GTK, or OpenMotif (libXm). Such as most of the software, there are widgets which are commercial, which are cost-free and which are free (Open Source). (All the three aforementioned are free). What's the use of widgets? If you want to write a program, you surely would not waste your time for re-inventing the wheel of line-by-line drawing every window, button etc, and connecting them to your program, unless you have a very good reason to do so, but rather use standard, proven, stable, well documented and properly debugged interface objects to handle standard actions, such as clicking menus, or pressing 'yes' and 'no'.
One hidden danger, when programing with widgets has to do with understanding how they connect with the working environment, Desktop etc. Many widget manufacturers and distributors integrate their widgets in higher-level user environments, for market related reasons, such as Desktop-based program or system management, or "because it looks like something you already know". In an ambitiously, but carelessly written program it may easily therefore happen that one has to literally install half of another operating system's tools (often including no less than poorer versions of something already being installed, plus megabytes of completely unrelated things, such as extra network managers, personal info-managers, South Korean printer fonts... and not ending with that, one may suddenly run into having to install a commercial library and pay for it), just to play a sound. Such a "start it from the Desktop"-practice is therefore TO BEWARE OF AND CONDEMN. Some manufactureres even encourage this practice as good!? This ISN'T FAIR! People need programs because they have creative ambitions, not because they like the Desktop!!!
navigating in frames