code: public byte[] getBytes()
  	{
  		byte[] b = new byte[getSize() + padding];
  		int bytesCopied = 0;
  		int length = 0;
  
  		length = head.getHeaderSize();
  		System.arraycopy(head.getBytes(), 0, b, bytesCopied, length);
  		bytesCopied += length;
  		if (head.getExtendedHeader())
  		{
  			length = ext_head.getSize();
  			System.arraycopy(ext_head.getBytes(), 0, b, bytesCopied, length);
  			bytesCopied += length;
  		}
  		length = frames.getLength();
  		System.arraycopy(frames.getBytes(), 0, b, bytesCopied, length);
  		bytesCopied += length;
  
  		// Bytes should all be zero's by default
  		System.arraycopy(new byte[padding], 0, b, bytesCopied, padding);
  		bytesCopied += padding;
  
  		if (head.getFooter())
  		{
  			length = foot.getFooterSize();
  			System.arraycopy(foot.getBytes(), 0, b, bytesCopied, length);
  			bytesCopied += length;
  		}
  
  		return b;
  	}
docs: Return a binary representation of this object to be written to a file.
  This is in the format of the id3v2 specifications.  This includes the
  header, extended header (if it exists), the frames, padding (if it
  exists), and a footer (if it exists).
  
  @return a binary representation of this id3v2 tag