Java package that offers a virtual mixer that provides multiple speaker and microphone lines.

What happens:
SpeakerThread opens a line to the default output (usually the speaker) and offers up to Mixer.MAXLINES virtual lines that can write to the speaker. SpeakerThread only writes the data from the first active line to the speaker. It does not 'mix' the data.
MicrophoneThread opens a line to the default input (usually the microphone) and offers up to Mixer.MAXLINES virtual lines that can read from the microphone. MicrophoneThread writes the microphone data to all active lines.
(Why: First this simplifies a sound application like answerphone that might need more then one input/output line at a time.
The second reason is the javax.sound.sampled.LineUnavailableException: Failed to allocate clip data: Requested buffer too large. that I received when the SoundPlayer needed to play bigger messages. Unfortunately this works only with a 1.5 jvm. )

To use/not use this Mixer, add/remove the line :
uk.co.mmscomputing.sound.provider.MixerProvider
in the file :
META-INF/services/javax.sound.sampled.spi.MixerProvider

The Mixer will only install data lines when called by a 1.5 jvm.