- 273 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory 
  Erste Seite (1) Vorherige Seite (272)Nächste Seite (274) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 

Problems: The proposed solution requires not only the knowledge of the components available in each package and their usage (parameterization), but also the scripting languages of the software packages as well as the interprocess communication issues. While the first requirement is equivalent to knowing what can be done semantically and thereby defining a condition for effective work (see also section 2.1), methods should be elaborated in order to shield beginners from having to know the different how-tos at a higher programming level, while more advanced users still can intervene at a lower level, to provide better solutions.

5.2 Interprocess Communication Routing

To establish a communication between two programs, a route must be found from the caller to the called program. It can be realized as a chain of suitably configured communication components. This can be very simple if the two programs speak the same communication language, such as Apple events. As a more complicated example, we consider the communication between OpenMusic, running on one computer under Mac OS 9, and a Rubato process, running on a Mac OS X computer. As remote Apple events may be disabled on the Mac OS X, or else the user does not know how to send events from OpenMusic to another computer, an indirect route must be chosen.

In MCL the OpenTransport facility of Mac OS 9 can be used. This allows to open a TCP/IP connection to another computer. In the MCL community a user has implemented the remote-shell protocol, such that a command can be sent as as string to the Mac OS X computer, be executed there and return as a string it’s standard output. Arrived on the other computer with correct user access rights (the user name and password are sent at the beginning of the protocol), the command can open a local communication channel to Rubato using Apple events or Objective-C’s distributed object calls.

To provide different ways of communication, we implemented some file-based and/or event-based interprocess communication processes for different situations. For detains see the OHR13

 
13  
OHR: OpenMusic, Humdrum, Rubato.
-project14
 
14  
http://flp.cs.tu-berlin.de/MaMuTh/Ohr/
. As now different communication elements are available, the task of creating a working chain of communication channels from one program to the other can again be seen as a configuration problem, which could be modeled in any of the scripting languages provided by OpenMusic, Humdrum or Rubato. This could be done by anybody who is aware of the actual situation and the routing elements.

5.3 Language Mappings

One way--proposed in Garbers (2003)--to reduce the need to know different programming languages, or at least their syntax, is to extend OpenMusic’s processing methods for patches, which are visual configurations of programming language elements. Currently these are mapped to LISP expressions (function definitions,


Erste Seite (1) Vorherige Seite (272)Nächste Seite (274) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 
- 273 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory