code: public void play(Module module, int source, boolean loop, boolean start) {
  		this.source = source;
  		this.loop = loop;
  		this.module = module;
  		done = false;
  		
  		ibxm = new IBXM(48000);
  		ibxm.set_module(module);
  		songDuration = ibxm.calculate_song_duration();
  
  		if (bufferNames != null) {
  			AL10.alSourceStop(source);
  			bufferNames.flip();
  			AL10.alDeleteBuffers(bufferNames);
  		}
  		
  		bufferNames = BufferUtils.createIntBuffer(2);
  		AL10.alGenBuffers(bufferNames);
  		remainingBufferCount = 2;
  		
  		for (int i=0;i<2;i++) {
  	        stream(bufferNames.get(i));
  		}
          AL10.alSourceQueueBuffers(source, bufferNames);
  		AL10.alSourcef(source, AL10.AL_PITCH, 1.0f);
  		AL10.alSourcef(source, AL10.AL_GAIN, 1.0f); 
  		
  		if (start) {
  			AL10.alSourcePlay(source);
  		}
  	}
docs: Play a mod or xm track streamed from the specified location
  
  @param module The moudle to play back
  @param source The OpenAL source to play the music on
  @param start True if the music should be started
  @param loop True if the track should be looped