Page  284 ï~~A Modular Construction Set for Time-Domain Editors Bernhard Feiten Institut fur Kommunikationswissenschaft Technische Universitiit Berlin feitenckgw. TU-Berlin. DE Markus Spitzer Institut fur Kommunikationswissenschaft Technische Universitiit Berlin mskgw. TU-Berlin. DE Abstract The paper describes a widget set, which is designed to facilitate the development of graphical editors for data based upon time. The groundwork is a basic editor, which provides basic functions like zooming and scrolling. Specific editors are derived from the basic editor in an object-oriented manner and allow manipulating varied datastructures like samples and sonograms. Several widgets for the vertical positioning of editors in tracks and a few auxiliary widgets like axes are available. A front-end for sound synthesis processes is presented, which uses the described widget set. 1. Introduction The graphical user-interfaces for complex sound synthesis and sound manipulation processes are not yet sufficient realized. One reason is the lack of powerful development tools. At the Institut fur Kommunikationswissenschaft at the TU Berlin we are working on a project with the purpose of creating a set of tools that relieves rapid and easy developing of applications for editing time-based data. During the conception we were guided especially by the demand for portability and re-usability. As a platform we chose Unix systems with the X Window System (X11 Release 5) and rely on the object-oriented widget concept of the X Toolkit (Xt and Xaw). In simple terms, a widget is an object with a visual representation on the display and a defined interaction behavior. The widget concept supports the re-usability of partial components by encapsulation of functions. Xl1 and Xt are widespread standards and therefore fulfill the demand on portability. tor widgets, which roots in a basic editor widget. The basic editor provides all functions, which are recurrent in different graphical editors. Specific editors were derived from the basic editor. The hierarchy in figure 1 shows the actual state, but extensions are possible and desirable. 2.1 Basic Editor The basic editor offers a uniform working surface to each derived editor. It provides a definable system of co-ordinates and a set of graphical basic functions working in that system. It offers the facilities to zoom and to scroll independently of the following levels of hierarchy. It provides an extensible popup menu, which allows to call fundamental methods such as load & save, print, select, cut & paste. As a rule, these methods are implemented by all derived editors. Fig. 2: Sample editor Phrase Ed AddSy. Ed Sonogram Ed Fig. 1: Hierarchy of editor widgets. Arrow stands for the predicate "is derived from". 2. Editor Hierarchy We constructed a widget set, which essentially is composed of two parts. On the one hand we built up a multi-stage hierarchy of edi 2.2 Derived Editors A new editor inherits all functions from the basic editor and adds specific functions like its own data structures, their input, output, print and redraw algorithms. Up to now we have derived a sample editor, an editor for additive synthesis, an envelope editor and a sonogram editor. Figure 2 shows the sample editor, figure Music Graphics 284 ICMC Proceedings 1994

Page  285 ï~~3 the editor for additive synthesis in an environment for testing. Each editor communicates through callback functions with the axes and the scrollbars - independently of the application. The axis widgets are sensitive to userinteraction. The user can mark a range on an axis, the axis informs the connected editor of the selection, and the editor can use this knowledge for zooming. The scrollbars were taken from the Athena widget set, which belongs to the Xll distribution. *. s.4- W (C)1 Uw..a L modify them, to calculate and to play them. In this connection a phrase is an instance of an abstract instrument definition whose parameters are controlled by an arbitrary number of changeable envelopes. Instruments are e.g. a sample instrument, which is controlled by amplitude and frequency envelope and a FM- or physicalmodel-instrument whose parameters are controlled by envelopes. Finally the instrument definition by a CSound-like programming language with graphical front-end should be possible. A score editor can also be used as front-end for different synthesis processes, e.g. controlling "ITThL A,..A:-_ LY1JIL-ULe V lce.Â~ --E7 - Fig. 3: Editor for additive synthesis 3. Positioning of Editors The widget sets second Dart 15 a wrou. of. widgets, that enables an application to position arbitrary widgets in vertical direction in areas similar to channels or tracks. The track widgets are provided with an arbitrary definable abscissa and allow zooming and scrolling. Fig. 4: Two tracks with movable widgets Figure 4 shows two tracks including some graphical editors and some widgets from other widget sets. From upper left to lower right: additive synthesis editor, sonogram editor, sample editor, Athena Clock, Athena Text, Athena Label with a bitmap. The features of the embedded widgets are fully accessible to the user. The little buttons at the upper left edge of each embedded widget serve as grips for moving and vertical resizing. 4. Score-Editor As a second step of our project we develop a score editor based upon the described widget set, that makes it possible to arrange musical phrases in an arbitrary number of tracks, to Fig. 5: Prototype of the score editor A possible user-interface of the score editor is shown in figure 5. The interface mainly consists of an arbitrary number of instances of the track widget, which are vertically piled up. The tracks again contain an arbitrary number of instances of a phrase editor. The phrase editor is derived from the envelope editor. 5. Summary The two parts of the widget library, the editor hierarchy and the widgets for editor arrangement, together result in a modular construction set for implementing complex graphical editors in short time. Varied applications are imaginable, which use different levels of the library. An application for example could use only the zoom, scroll and drawing features of the basic editor but manage its own data structures independently. As the score editor, another application could use the leafs of the editor hierarchy. They are almost autonomous editors. Moreover, widget programmers can add new editors to the hierarchy by deriving them from existing ones. Using Xll and Xt leads to the desired portability. Hitherto the widget set is running under the operating systems Irix, Ultrix, SunOS and. Linux. ICMC Proceedings 1994 285 Music Graphics