Jammin' on the Web - a new Client/Server Architecture for Multi-User Musical Performance

This paper describes a software system called the TransJam Server that allows several musicians to log into an Internet web site and perform music together. The system is general purpose so programmers can develop web based applications in a variety of styles. A single server can support several different applications simultaneously, for example musical applications, games, or conferencing. A simple protocol allows clients to enter a lobby, obtain a list of active sessions, join a session, and then exchange information with other members of the session. Server operations such as object locking and data broadcasting allow users to create and edit shared data objects without corrupting them. The server is written in 'C' and runs on PC or Unix based hosts with low overhead. Client applications are typically written in 'C' or Java. A chat feature is available which allows musicians to discuss musical strategies and to interact socially. The Java version can be used with a number of audio APIs including JSyn, JMIDI, or SUN's new JavaAudio. Applications must be designed to work well despite Internet latencies. Examples include drum boxes, algorithmic music generators, or “ambient” synthesis environments.