Basically the sound server or sound manager implementation will be an unique class (singleton) that listen to server actions. The model of communication between the server and clients will be using modeldef's. The server will send modeldefs to the client containing exclusive informations about the sound to play. If the sound is not cache, the manager will cache it and put it on the play queue. The modeldef will contain special information about sounds like frequency (Hz), output type(mono/stereo) and if it should be played as background music. The file format will be molded to fit those features needs.