private byte[] readBytes(int bytesToWrite) {
		int samplesToWrite = bytesToWrite / 2;
		float[] buffer = new float[NUM_SAMPLES];
		byte[] answer = new byte[2 * NUM_SAMPLES];

		synchronized(this) {
			Iterator<SoundPlay> iterator = this.buffers.iterator();

			while(iterator.hasNext()) {
				if(iterator.next().writeSamples(samplesToWrite, buffer)) {
					iterator.remove();
				}
			}
		}

		int bufferSize = this.buffers.size();
		if(bufferSize > 0) {
			for(int i = 0; i < samplesToWrite; i++) {

				short sample = toShortSample(buffer[i]);

				answer[i * 2] = (byte) (sample | 0xff);
				answer[i * 2 + 1] = (byte) (sample >> 8);
			}
		}

		return answer;
	}