The User Interface

As with the parallelisation of Tao's synthesis engine I did some evaluation of the various options available both on the SGI and Linux platforms for building a GUI for Tao whilst at ACAT. However at the time there were too many other things to be done to improve the basic synthesis engine and I never atually implemented anything concrete. Since then the main GUI toolkits for Linux (Gtk and Qt) have become more widely used and documented and as such are obvious choices. Of course the use of Qt would also make it very easy to create a port for other platforms such as MS Windows.

I have had some more general thoughts on the subject of GUIs though and having had some brief experience of 3-D animation packages such as Side Effects' Houdini and more recently Blender I think that many of the concepts used in their interfaces would be applicable to Tao. To be more specific the ability of such packages to control and animate the values of any parameters with the use of various spline, bezier and NURBS curves is directly applicable. The other obvious area in which there is overlap is that Tao is basically a modeling tool and many of the concepts used in the user interfaces of animation packages such as object heirarchies; different views, layers of objects etc. would also be applicable.

Both Houdini and Blender allow the evolution of objects to be described in a procedural manner through the use of use of scripting. Blender in particular uses the Python OO scripting language. Tao could also benefit from the dual GUI/scripting approach.

To summarise, the following features would be desirable in a new interface for Tao:

  • a curve editor with editable curves representing arbitrary parameters;
  • a graphical instrument editor with a suitable toolbox;
  • a 3D visualisation window with rotate/zoom/translate capabilities;
  • some kind of data block structure showing hierarchies of components, devices and other objects and their relationships;
  • some kind of integrated graphical and text based score system where changes in the graphical representation would immediately lead to changes in the text version and vice versa.


©1999,2000 Mark Pearson m.pearson@ukonline.co.uk April 30, 2000