Hi everyone,<br>
<br>
I'm attempting a java implementation of the id3 tag scheme, but I've run into some difficulties interpreting the specs.<br>
Could someone help explain some of the following?<br>
<br>
<br>
id3v2.4.0-structure.txt:<br>
<br>
Section 3.2:<br>
Here, the CRC value is described as "a 35 bit synchsafe integer,
leaving the upper four bits always zeroed". Are the bits cleared
from the 35-bit result to give a 31 bit value, or are the bits cleared
from the encoded (5 byte) value to give a 32-bit result once decoded?<br>
<br>
<br>
id3v2.4.0-frames.txt:<br>
<br>
Section 4.5<br>
According to the description, the only allowed timing formats are absolute times from the beginning of the file.<br>
Later, the following description is given: "The 'Time stamp' is set to
zero if directly at the beginning of the sound or after the previous
event."<br>
Does this mean that the time stamps are not always absolute?<br>
Also, what is meant by "the beginning of the sound"? Is that the point that would be marked by $02 (intro start)?<br>
<br>
<br>
Section 4.6:<br>
Am I correct in assuming that "Bytes between reference" and "Milliseconds between reference" are both 24-bit values?<br>
Are the deviation values to be interpreted as signed or unsigned integers?<br>
<br>
<br>
Section 4.7:<br>
This section describes a tag that starts with a time format byte,
followed by a series of tempo codes. Each tempo code has a tempo
part (1-2 bytes) followed by a time part.<br>
The next paragraph talks about a tempo descriptor, which is not defined
elsewhere in the document. How is a tempo descriptor
composed? How is it stored in the tag? Is a tempo
descriptor the collection of all the tempo codes? If so, how do
you know when the tempo codes finish and the time stamp starts?<br>
<br>
<br>
Section 4.9:<br>
"The 'time stamp' is set to zero or the whole sync is omitted if located directly at the beginning of the sound."<br>
<br>
I don't really understand this part... Why would you omit a sync
if you need to show lyrics at the start of the song? Is the
beginning of the sound equivalent to the beginning of the audio
stream? If so, then it's self-evident that the timestamp would be
0... Or am I missing something?<br>
<br>
<br>
Section 4.11:<br>
What are the units for peak volume? Is it the same fixed point
integer format as the volume adjustment, but as unsigned values?<br>
<br>
<br>
Section 4.19:<br>
If more than one encryption frame is present in a tag, does that mean
that the file has been encrypted with multiple schemes? If so, is
there a set order that the decryption must be applied? (for example, if
there's an AES encryption frame, and then a Blowfish encryption frame,
does this mean that the file has been run through both algorithms and
must be run through both decryptors before becoming readable?
Which decryptor runs first?)<br>
Also, what happens if the encryption frames have different preview windows? Is this considered an error?<br>
<br>
<br>
Best regards,<br>
<br>
Kochakaden<br>
<br>