Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!ANDREW.CMU.EDU!wjh+ From: wjh+@ANDREW.CMU.EDU (Fred Hansen) Newsgroups: comp.mail.multi-media Subject: Re: A high-level language for animation & sound ?? Message-ID: Date: 12 Oct 89 11:24:47 GMT References: Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 63 Eric Ho has asked: >> Just wondering if anyone out there is developing a high-level language that >> has all the flexibility & simpilicty (& device independence) of PostScript >> but capable of addressing sound & animation as well ? Other responders to this request have mentioned MIDI as a sound standard (standard for sound ?-). We could even consider making MIDI a data type accessible to postScript and then do everything in PostScript. With the extension developed for NeWS, PostScript should be able to handle the real time sequencing required for animations. It seems to me, however, that we need 2 more "languages". The way I see it, a message is a document and contains various pieces like rasters, spreadsheets, sounds, and animations. One language needed is a high level, user oriented language for expressing the behavior of the message in response to reader actions. The author may wish a particular button to start a voice-gram or may want the voice to activate in conjunction with an animation. If we try to build special purpose tools for users to express all possible sequencing we will inevitably omit some useful options. Users will be far better served if we instead build a general-purpose language with functionality for invoking animations, sound, and other dynamic objects. The other "language" needed is some data stream definition that can amalgamate in one stream the various elements we want: MIDI, postscript, text, rasters, animations, spreadsheets, ... . PostScript could serve this purpose, but it needs to be extended with a stronger notion of quoting embedded objects. {There is a way to do this in PostScript: the red PostScript book shows a way to incorporate large rasters, but it essentially means dropping out of PostScript and reading directly from the data stream.} What work is going on at CMU? We have candidates for both languages. The Andrew ToolKit (ATK) datastream definition provides for mixture of text and other objects of any sort. The run-time environment defines protocols by which the driver for an outer object communicates with embedded objects, including how the outer object calls upon the inner to read its portion of the data stream. For user level expression of behaviors, we have implemented Ness. This is a fairly standard language in many respects: variables, functions, assignment, if-then-else, while-do. In addition it offers a novel algebra for dealing with string values; with this algebra substring references can be passed as arguments to functions and returned as their value. This means that a parsing function not only returns the string it matches, but also the location of that string within its underlying base string. Another innovation of the language is a notation that permits scripts in the language to intercept mouse, menu, and key events intended for objects. In this way a mouse click on any object can be interpreted to start an animation or initiate sound. (A few months ago I promised to send out documentation on Ness to a few prople. I expect to actually do that this week. Hang in there, folks :-) Fred Hansen