TransJam - Jammin' on the Web!





WebDrum II

Chat Demo


Contact Us


What is the Transjam Server?

The Transjam server is a 100% Java program that runs on the same computer as the HTTP web server. Clients log in to the server and communicate using TCP/IP sockets. The client programs are written in Java (or 'C') and can be run in a web page as an Applet. This allows interaction between multiple people who are accessing web sites on the same machine. Interaction may consist of chatting, game play, music performance, collaborative design, etc.

Why do we need a server for multiple people to interact?

Java Applications can connect to any computer on the Internet and interact freely. Java Applets, however, can only connect to the computer that is hosting the Applet for security reasons. So if an Applet running on one person's computer wants to communicate with another Applet on another person's computer, they must communicate through the central server.

What is a Lobby and a Room?

When a person first logs in to the Transjam Server, they enter a "lobby" where they can meet other people who are sharing the server. Users can then join other users in a "room". If the Application was a Bridge game, then a room could have a maximum of four people. Users can join an existing room or create a new one.

What activities does the server support?

The client software determines the nature of the application. The server is generic and simply provides application neutral interaction services to the clients.

What types of communications can occur in a room?

Clients can send commands that look like XML elements. Commands include:

  • sendall - send message to all users in room. Useful for broadcasting information.
  • senduser - send a message to a specific user.
  • locknewthing - create a generic "thing" that can be locked, modified, and unlocked by a user. The locking allows edits to be atomic so that multiple users do not overwrite each others edits. This is similar to a source code control system but acts on temporary memory based objects. Examples of "things" are: a melody, the number of trolls under a bridge, the state of a tic-tac-toe board, etc. Modifications to things are broadcast to all users in a room that have subscribed to changes.

Where is an example Transjam program?

An example program, the WebDrum, can be found at: "". It allows multiple users to share the editing of a drum pattern. A drum track can be owned by one person at a time and edited by the owner. Each user will see the same pattern as it is being edited, but the client machines are not synchronized. Editing a looping pattern is a good way to avoid the problem of network latency which would otherwise make live jamming very difficult.

TransJam, JSynTM and the WebDrum are products of (C) 1997-2014
Hosted on Amazon EC2