code: public boolean stream(int bufferId) {
  		int frames = sectionSize;
  		boolean reset = false;
  		boolean more = true;
  		
  		if (frames > songDuration) {
  			frames = songDuration;
  			reset = true;
  		}
  		
  		ibxm.get_audio(data, frames);
  		bufferData.clear();
  		bufferData.put(data);
  		bufferData.limit(frames * 4);
  		
  		if (reset) {
  			if (loop) {
  				ibxm.seek(0); 
  				ibxm.set_module(module);
  				songDuration = ibxm.calculate_song_duration();
  			} else {
  				more = false;
  				songDuration -= frames;
  			}
  		} else {
  			songDuration -= frames;
  		}
  
  		bufferData.flip();
  		AL10.alBufferData(bufferId, AL10.AL_FORMAT_STEREO16, bufferData, 48000);
  		
  		return more;
  	}
docs: Stream one section from the mod/xm into an OpenAL buffer
  
  @param bufferId The ID of the buffer to fill
  @return True if another section was available