AsTeR renders information by applying rendering rules/ to the internal representation described in s:represent and s:macro-objects. The system of rendering rules used in AsTeR and the language in which they are written (AFL -Audio Formatting Language) are described in detail in [Ram94]. In a sense, AFL is to audio formatting as Postscript is to visual formatting, although AFL is a much smaller language.
Here, we show a small example of such a rendering rule for a user-defined macro. In the following, we use CLOS generic function read-aloud. For the present, let us assume that function read-aloud executes the necessary actions to render its argument.
After extending AsTeR to process the
\inference, which is defined as
to render instances of calls to
\inference, we can
Given [tex2html_wrap335], this produces ``A implies B''.
If we wished to produce a rendering that inverts the order in which the
arguments to macro
\inference are rendered, we would define:
which produces ``We know B because A''.
Switching between these two rendering rules has the effect of inverting a proof-tree! AsTeR makes it easy to write several rendering rules for the same object. AsTeR also allows rendering rules to be partitioned into rendering styles. In an interactive session with AsTeR , switching between rendering styles (a collection of rendering rules for different objects) and invoking individual rendering rules can be done with a few keystrokes, making it easy for a listener to obtain many different views of a document.
AsTeR derives its power from representing document content as objects and by allowing multiple user-defined rendering rules for individual object types. These rules can cause any number of audio events (ranging from speaking a simple phrase, to playing a digitized sound). The pitch of the voice, the physical head-size of the virtual speaker, the volume, and many other parameters can be changed by rendering rules, making it easy to create sound cues to help display structure.
To give an example of this, the logo for AsTeR is
and is produced by La)TeX macro
appropriately extending AsTeR to recognize this macro,
we can define an audio rendering rule that
produces a bark when rendering instances of this macro.
Thus, the same piece of markup
\asterlogo produces the picture of
Aster[+] when rendered visually, and an
appropriate sound[+] when
This feature was exploited to advantage when producing the audio formatted version of the author's thesis. The dedication page of the thesis contains a large picture of Aster, and the audio formatted version contains a verbal description of the picture, accompanied by the sound of Aster panting in the background. You can listen to this example on the WWW -visit the AsTeR home page[+] and click on the picture of Aster.
Several ideas come together to make all this possible. First, logical structure is of paramount importance -not its display on any one particular medium. The more a document makes structure explicit, the better the document can be displayed on several different mediums.
Next, the use of La)TeX macros to encode structure makes it possible to have a system like AsTeR , in which the internal structure can be extended to fit a document. This allows the encoding of the structure in a flexible, uniform, and consistent representation such as an attributed tree, with the addition of the quasi-prefix form for dealing with mathematics.
Finally, providing different rendering rules and styles and a flexible way to switch among them makes it possible to obtain multiple views of a document in an interactive fashion.