FL005 Generating incorrect `Subchunk2Size` header values
Generating incorrect Subchunk2Size
header values
#
Problem ID | Manufacturer | Affected Firmware | Fixed in firmware | Affected Hardware | Status |
---|---|---|---|---|---|
FL005 | Frontier Labs | 2.2; 2.99 | 3.00 | BAR | Minor problem |
It appears that Frontier Labs writes an incorrect value for the data
subchunk’s
size field (known as Subchunk2Size
or cksize
). The value should be the size
of the data block, in bytes, and should be the equivalent of
== NumSamples * NumChannels * BitsPerSample/8
. Essentially it is the size of
the PCM samples, which is the size of the file not including the WAV header.
Frontier Labs erroneously writes the total size of the file into the header
instead. On average this means the data size is off by 44
bytes (the standard
sized wav header) which is about 3 16-bit samples’ worth.
Interestingly this problem was discovered while trying to create a validation check for the corrupt files (see this file) that BARs sometimes produce.
Update: It has been discovered that the “RIFF” chunk size is also off by 44
bytes.
The value of the “RIFF” chunk size should be the remaining size of the file after
itself (or the total size of the file minus the first 8 bytes).
Status #
Minor problem - this problem no longer occurs in firmwares greater than 3.00
.
Any files produced with older firmwares still have issues though.
For files with simple wav headers 3 samples worth of error is about 0.136 seconds of error.
Status with vendor #
Vendor has patched the problem in firmware 3.00
. Get updated firmware from Frontier Labs
Effects of the problem on common tools #
EMU #
Emu can detect and repair affected files: https://github.com/QutEcoacoustics/emu/blob/master/docs/fixes.md
Acoustics Workbench (Ecosounds, A2O) #
- While technically incorrect, all the values are small enough that they are omitted or ignored in our higher level code.
Raven #
- No effect, file opens normally.
Audacity #
- No effect, file opens normally