Audio on The Internet

Client-Server Systems

The term "client-server computing" currently avoids precise definition. In general, client-server systems divide the computational work of a process among clients, usually networked desktop-based microcomputers, and servers, centrally-located high-powered micro- or more powerful computers. This arrangement differs from centralized computing in that the clients are fairly intelligent, not simply dumb terminals used to interact with a mainframe computer.

Achieving client-server distribution can take several forms. A client-server database may require the client to perform common tasks such as data entry and sorting, while the server performs other functions for all the clients, such as searches, storage, and backups. Therefore, in theory, a relatively low-cost server which shares the computational responsibilities of a process can improve a task performed by all the clients.

The NetSound Project

Because of the high computational requirements dictated by digital audio synthesis and/or the large size of digital audio files, those using audio on a mid- to large-scale network may find the distribution of labor in a client-server configuration a more efficient model of processing. For example, a group at the Massachusetts Institute of Technology's Media Lab has devised a system which distributes descriptions of sound using a World Wide Web server. As these descriptions are downloaded, they are synthesized by the client. Specifically:

NetSound is a new multi-media data type for World Wide Web audio distribution that is being developed by the Machine Listening Group. NetSound comprises a MIME type and a viewer that synthesizes sound in real-time on the local host. We are currently working on implementing NetSound on Silicon Graphics, PowerMac and 486-based machines.
Several advantages arrive with the NetSound approach. First, synthesizing sound on the client takes advantage of the end user's computing power while not overtaxing the relatively slow Internet connection. Second, because a description language is being transferred rather than a sample-by-sample representation, the quality of the sound is scaleable, that is, the description language can be used to synthesize audio of varying sampling rates, word length, etc., dependent only upon the client's processing power.

A possible disadvantage to the NetSound approach rises when non-synthesized, recorded sounds are to be reproduced. The group at MIT proposes transcribing digital samples into a "description-based representation" so that they too can embody the advantages of the synthesis method. Video and graphics professionals know how difficult non-literal digital descriptions can be to develop (the only viable solution thus far has been FITS technology - Functional Interpolating Transformation System - implemented successfully in the Live Picture image manipulation program, and this has only worked for still images thus far). It remains to be seen how well the NetSound project will work in this respect.


By far the most ambitious approach to client-server distribution on the Internet is Sun Microsystems' HotJava Browser and the companion Java language. HotJava aspires to bring a new level of dynamism and scalability to content on the Internet. Although HotJava's uses are many, only those relevant to audio will be explored here.

The Java language resembles the object-oriented C++, but is simpler, safer, and more portable. The use of a robust programming language, as opposed to a markup language such as HTML, in conjunction with the HotJava browser provides for greater functionality in content distribution and a higher level of interaction. There are three main ways in which HotJava accomplishes this:

  1. Interactive Content - By downloading code, as opposed to static graphics, sound, or text, the HotJava browser can accept working "applets", small applications, that contain all the functionality of small programs. For example, if the user does not already have a sound playback utility, the browser can request a playback applet to be downloaded in conjunction with a sound file, which could subsequently function within HotJava.

  2. Dynamic Types - Conventional browsers such as Mosaic, Navigator, and Lynx have a built-in set of file types they can interpret or instead rely on add-on "helper" utilities to handle additional types. If a type is new to the browser or the user does not have the proper utility, the new file type cannot be used. If HotJava encounters an unknown file type, it can request Java code from the server that will interpret the file.

  3. Dynamic Protocols - The same applies to whole Internet protocols. Instead of a protocol having to be built into the browser, HotJava can download a protocol encoded in the Java language to be used by the browser. For example, if a transmission uses a proprietary security encryption scheme the user has not yet encountered, HotJava can download the new protocol and decode all further messages using that encryption scheme.

The prospect of downloading runtime code from the Internet has raised security concerns. Sun implemented four levels of defense against malicious code: the source code cannot violate the safety rules; the bytecodes are verified to check the fidelity of the compiler; the classes of this object-oriented language cannot be used for functions other than which they are specified, and the HotJava interface allows the user to make some decisions about which applets should be accessed and what access the applets have to other resources on the network.

For more information consult the HotJava FAQ.

Also see Telephony, Broadcasting,and Teleconferencing.

Last Section:

Audio on The Internet