Page  00000001 An HTTP Interface to SALIERI K~ai Renz and Holger H. Hoos Darmstadt University of Technology Wilhelminenstr.7, D-64283 Darmstadt, Germany email: {renz,hoos} Abstract. This paper describes how the SALIERI System, a powerful and flexible tool for composition, analysis, and editing of score level music, has been modified to serve as a music-server in a local or global network using HTTP. This composition server offers new ways of user-machine-interaction and a novel approach to composition using the internet. The architecture of the SALIERI server and the required modification of the existing SALIERI System to suit the needs of WEB-access, like security and multi-user access are discussed and some applicationscenarios, like e.g. composition and teaching are presented. Intro duct ion As the SALIERI system [Hoos et~al.; 1998b]3 is a very powerful and flexible tool for working with score level music, the idea of offering its rich functionality to any user with access to the internet using a WEB browser comes quite naturally. Novel means of user-machine-interaction are required when putting a music service on the net: the new media internet requires new user interfaces and offers new and exciting ascpects of composition/teaching and generally of working with music. The possiblity to do computer supported cooperative composition (CSCC) extends the classical forms of composition. The SALIERI server is a composition server that can be accessed by composers everywhere using the internet. Additionally, the SALIERI server can be used for teaching and learning purposes: WEB pages can be enhanced to provide interactive, structured courses on musical subjects, like, for example, algorithmic composition. Classroom teaching can also be realised with our netbased approach: each student connects to the SALIERI server and works on musical excercises, while the teacher can monitor their work and provide online help. While conceptually the design of the SALIERI server has been completed and a simple version has been implemented, we are currently working on realising the more advanced features. The SALIERI server is a WEB based service that offers a globally available interface to the SALIERI Language. It has been realisjed through minor modifications to the highly portable SALIERI Kernel which now provides a secure multi-user platform to be used by any computer system running a WEB browser.1 SALIERI programs can be transferred to the SALIERI server using the Common Gateway Interface (CGI). The server then generates textual output, MIDI output, or conventional music notation using the GUIDO NoteServer [Renz, Hoos; 1998]. The user may make use of the rich functionality of the SALIERI Language and of additional support libraries that cover a broad range of musical subjects. The SALIERI server greatly facilitates lab administration, as there is no need to install the SALIERI System on every single machine in the lab. Using the HTTP based service, the whole functionality of the powerful SALIERI Language becomes available to all computers without the need of any local administration. The SALIERI manual is also available online, as it is realised as a series of HTML documents. As was shown in [Taube, Kunze; 1997], adding an HTTP interface to existing (musical) applications is quite challenging and requires sometimes extensive remodeling of the system. In the case of the SALIERI System, however, only minor modifications where needed, as will be shown in the next section.

Page  00000002 Figure 1: The architecture of the SALIERI server Architecture of the SALIERI server Only minor modifications to the existing SALIERI system were needed when realising the SALIERI server. This is due to the modular architecture of our system: serveral modules handle different aspects of the system functionality. All musical functionality, for example, is provided by the SALIERI kernel, whereas the graphical user-interface is handled by other modules. User-interaction with the SALIERI server is realised using the Common Gateway Interface (CGI). A SALIERI program is put into a CGI-form on a WEB page which is then sent to the WEB server. A screen-shot of this WEB page can be seen in Figure 2. The WEB server starts a PERL script which first checks the user-input and than calls a specialised version of the SALIERI kernel. The kernel performs the necessary calculations and creates the output data which can be either textual output, MIDI files, or GUIDO Music Notation files [Hoos; 1998a]. All these formats can be handled by any WEB browser; in the case of conventional music notation, the GUIDO NoteServer [Renz, Hoos; 1998], which is presented elsewhere in these proceedings, is used. As the SALIERI kernel is highly portable, there is no restriction concerning the server platform. Right now, versions of the SALIERI kernel exist for all Windows-platforms, a multitude of Unix-derivates and for Macintosh computers.2 Usually, the SALIERI kernel maintains a permanent workspace, so that any manipulated symbol can be saved for later use. In the case of the portable SALIERI kernel which is used for the HTTP interface to SALIERI, workspace information can only be saved when the service is executing in a protected environment. This is necessary to protect the server from potentially harmful users. The SALIERI kernel is secure in the sense, that access to the server and the underlying operating system can be restricted with regard to different security levels: a server running on a local network can allow more operations (like for example file I/O) than a server beeing accessed through the WEB. The general architecture of the SALIERI server is depicted in Figure 1. Security One important issue when offering services on the WEB is security. It should not be possible for anyone to break into the system or to exhaust vital system resources. To prevent this from occuring, some precautions have been taken into account during the development of the SALIERI server. First of all, in secure mode the SALIERI kernel does no longer allow execution of operating sytem commands. Also, opening and saving of local files is restricted to those files created during the current interactive session. 1This WEB-service will soon be publicly available at 2All versions will soon be available at our website.

Page  00000003 SALIERI on the WWW EI......I Second, a unique identifier is created whenever a new user logs into the system through the WEB server. This identifier is then used for uniquely determining the owner of the files created within the session. Another process keeps track of user-logins and removes files which have expired afer a user has logged out. Application Areas Composition As depicted in Figure 3, new ways of composition become possible when using the SALIERI server in a trusted intranet environment.3 Two or more composers can interact by exchanging musical data as well as all other SALIERI data types including functions. This approach leads to new ways of composition: the composed music can be interlinked and musical motifs can be used in different musical contexts to create a new kind of interwoven music. The different composers each have a personal workspace, which holds their musical data and functions. SALIERI workspaces can hold user data in named containers called packages; one package which is named public is used to make user data available to other users. All objects in the public package can be read by other users during the online sessions. The SALIERI server also allows for simultaneous work on a single piece of music. It is recommended that users communicate with each other using one of the available chat-services, like for example NetMeeting, while working at the same time. Different users can also work with the SALIERI server at different times: the results of the work sessions are saved in the user's workspace and can be accessed by other users at later times. Teaching The SALIERI server can also be used for teaching and learning purposes. As virtual learning is becoming more and more popular, the SALIERI server can be used to provide structured, interactive courses on musical subjects like music theory or algorithmic composition. These courses can be accessed by students worldwide using the internet. Another usage of the SALIERI server lies in classroom teaching: one privileged user - the teacher - can examine all of the students work. To prevent "cheating" in this environment, each student can only access his private workspace. 3For security reasons this service should not be offered in untrusted networks e.g. the internet.

Page  00000004 Figure 3: Composers can provide and access musical and functional data Conclusions and Future Work In this paper we presented an HTTP interface to SALIERI which can be used to access the powerful and adequate SALIERI Language through any conventional WEB browser. The SALIERI server can also be used for evaluation purposes: potential users of the SALIERI system get the opportunity to work with the system without having to install it on their local computer. While the basic SALIERI server is already available on the internet, we are currently implementing some of the advanced concepts presented in this paper. Furthermore, we started working on a JAVA front-end to the SALIERI System which will result in a portable graphical user interface to the system. The modular architecture of the system will be maintained during this port, and the overall goal will be a distributed system based on JAVA components. As JAVA applications can be easily distributed through the WWW, this will, at a later time, replace the current SALIERI server. References [Hoos; 1998a] Holger Hoos, Keith Hamel, Kai Renz, Jiirgen Kilian; GUIDO - A Novel Approach to Music Representation; in: Proceedings of ICMC-98 [Hoos; 1998b] Holger Hoos, Jiirgen Kilian, Kai Renz, Thomas Helbich; SALIERI A general, interactive Computer Music System; in: Proceedings of ICMC-98 [Renz, Hoos; 1998] Kai Renz, Holger H. Hoos; A WEB based Approach to Music Notation using GUIDO; in: Proceedings of ICMC-98 [Taube, Kunze; 1997] Heinrich Taube, Tobias Kunze; An HTTP Interface to Common Music; in: Proceedings of ICMC-97; pp. 204-207; Greece, 1997