The human auditory system's tolerance for the noise this causes makes the loss of accuracy barely noticeable.
The only particularly distinctive feature that sets CRI ADX apart from other ADPCM formats is the integrated looping functionality, enabling an audio player to optionally skip backwards after reaching a single specified point in the track to create a coherent loop; hypothetically, this functionality could be used to skip forwards as well but that would be redundant since the audio could simply be clipped with an editing program instead.
For playback aside from CRI Middleware's in-house software, there are a few plugins for WinAmp and also WAV conversion tools.
The CRI ADX specification is not freely available, however the most important elements of the structure have been reverse engineered and documented in various places on the web.
As a side note, the AFS archive files that CRI ADXs are sometimes packed in are a simple variant of a tarball which uses numerical indices to identify the contents rather than names.
The identified sections of the main header are outlined below: Loop End Sample Index (v3) Loop End Byte Index (v3) Fields labelled "Unknown" contain either unknown data or are apparently just reserved (i.e. filled with null bytes).
This header may be as short as 20 bytes (0x14), as determined by the copyright offset, which implicitly removes support for a loop since those fields are not present.
Although any bit-depth between 1 and 255 is made possible by the header, it is unlikely that one bit samples would ever occur as they can only represent the values {0, 1}, {-1, 0} or {-1, 1}, all of which are not particularly useful for encoding music.
The 'ADX_header' pointer refers to the data extracted from the header as outlined earlier, it is assumed to have already been converted to the host Endian.
The caller can test if this value is not zero to detect the end of the stream and drop or write silence into the unused spaces if necessary.
This method is computationally inexpensive to decrypt (in keeping with CRI ADX's real-time decoding) yet renders the encrypted files unusable.