public void load() 
		throws SoundSystemUnavailableException {
				
        int max = this.numberChannel;
        
		// At present, ALAW and ULAW encodings must be converted
        // to PCM_SIGNED before it can be played
		
        this.audioFormat = this.audioInputStream[0].getFormat();
        
		if (this.audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
            this.audioFormat = new AudioFormat(
                    AudioFormat.Encoding.PCM_SIGNED,
                    this.audioFormat.getSampleRate(),
                    this.audioFormat.getSampleSizeInBits()*2,
                    this.audioFormat.getChannels(),
                    this.audioFormat.getFrameSize()*2,
                    this.audioFormat.getFrameRate(),
                    true);        // big endian
			
			for (int i = 0; i < max; i++) {
				this.audioInputStream[i] = 
					AudioSystem.getAudioInputStream(this.audioFormat, this.audioInputStream[0]);
			}
        }
        		
		this.audioStreamSize = (int)this.audioInputStream[0].getFrameLength() 
									* this.audioFormat.getFrameSize();
		
		this.dataLineInfo = new DataLine.Info[max];
		this.clipLine = new Clip[max];
		
		for(int i = 0; i < max; i ++) {

			this.dataLineInfo[i] = new DataLine.Info(Clip.class, this.audioFormat, this.audioStreamSize);

			try {
				this.clipLine[i] = (Clip) AudioSystem.getLine(this.dataLineInfo[i]);
				this.clipLine[i].open(this.audioInputStream[i]);
			} catch (LineUnavailableException e) {
				throw new SoundSystemUnavailableException("Unable to access/initialize sound system.");
			} catch (IOException e) {
				throw new SoundSystemUnavailableException("Unable to access/initialize sound system.");
			}
			
			this.clipLine[i].setFramePosition(0);
		}
	}