private void parseID3v1ExtendedTag(byte[] tagInput) {
		int runningIndex = -1;

		// find header "TAG"
		for (int i = 0; i < tagInput.length; i++) {
			boolean foundT = tagInput[i] == (byte) 'T';
			boolean foundA = (tagInput.length > i + 1 && tagInput[i + 1] == (byte) 'A');
			boolean foundG = (tagInput.length > i + 2 && tagInput[i + 2] == (byte) 'G');
			boolean foundPlus = (tagInput.length > i + 3 && tagInput[i + 3] == (byte) '+');
			if (foundT && foundA && foundG && foundPlus) {
				runningIndex = i;
				break;
			}
		}
		if (runningIndex > 0) {
			byte[] tagData = new byte[bufferLength];
			System.arraycopy(tagInput, runningIndex, tagData, 0, bufferLength);
			// System.out.println("tag data= " + new String(tagData));

			runningIndex = 4;
			title = new String(tagData, runningIndex, 60);
			runningIndex += 60;

			artist = new String(tagData, runningIndex, 60);
			runningIndex += 60;

			album = new String(tagData, runningIndex, 60);
			runningIndex += 60;

			speed = tagData[runningIndex++];
			
			genre = new String(tagData, runningIndex, 30);
			runningIndex += 30;
			
			startTime = new String(tagData, runningIndex, 6);
			runningIndex += 6;
			
			endTime = new String(tagData, runningIndex, 6);

			cleanUpData();
		}
	}