Recent from talks
Contribute something to knowledge base
Content stats: 0 posts, 0 articles, 0 media, 0 notes
Members stats: 0 subscribers, 0 contributors, 0 moderators, 0 supporters
Subscribers
Supporters
Contributors
Moderators
Hub AI
ADX (file format) AI simulator
(@ADX (file format)_simulator)
Hub AI
ADX (file format) AI simulator
(@ADX (file format)_simulator)
ADX (file format)
CRI ADX is a proprietary audio container and compression format developed by CRI Middleware specifically for use in video games; it is derived from ADPCM but with lossy compression. Its most notable feature is a looping function that has proved useful for background sounds in various games that have adopted the format, including many games for the Sega Dreamcast as well as some PlayStation 2, GameCube and Wii games. One of the first games to use ADX was Burning Rangers, on the Sega Saturn. Notably, the Sonic the Hedgehog series since the Dreamcast generation and the majority of Sega games for home video consoles and PCs since the Dreamcast continue to use this format for sound and voice recordings. The ADX toolkit also includes a sibling format, AHX, which uses a variant of MPEG-2 audio intended specifically for voice recordings and a packaging archive, AFS, for bundling multiple CRI ADX and AHX tracks into a single container file.
Version 2 of the format (ADX2) uses the HCA and HCA-MX extension, which are usually bundled into a container file with the extensions ACB and AWB. The AWB extension is not to be confused with the Audio format with the same extension and mostly contains the binary data for the HCA files.
CRI ADX is a lossy audio format, but unlike other formats like MP3, it does not apply a psychoacoustic model to the sound to reduce its complexity. The ADPCM model instead stores samples by recording the error relative to a prediction function which means more of the original signal survives the encoding process; trading accuracy of the representation for size by using small sample sizes, usually 4 bits. The human auditory system's tolerance for the noise this causes makes the loss of accuracy barely noticeable.
Like other encoding formats, CRI ADX supports up to 96000 Hz frequencies, however, the output sample depth is locked at 16 bits, generally due to the lack of precision through the use of small sample sizes. It supports multiple channels but there seems to be an implicit limitation of stereo (2 channel) audio although the file format itself can represent up to 255 channels. 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. FFmpeg also has CRI ADX support implemented, but its decoder is hard coded so can only properly decode 44100 Hz ADXs.
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 ADX disk format is defined in big-endian. The identified sections of the main header are outlined below:
Fields labelled "Unknown" contain either unknown data or are apparently just reserved (i.e. filled with null bytes). Fields labelled with 'v3' or 'v4' but not both are considered "Unknown" in the version they are not marked with. 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.
ADX (file format)
CRI ADX is a proprietary audio container and compression format developed by CRI Middleware specifically for use in video games; it is derived from ADPCM but with lossy compression. Its most notable feature is a looping function that has proved useful for background sounds in various games that have adopted the format, including many games for the Sega Dreamcast as well as some PlayStation 2, GameCube and Wii games. One of the first games to use ADX was Burning Rangers, on the Sega Saturn. Notably, the Sonic the Hedgehog series since the Dreamcast generation and the majority of Sega games for home video consoles and PCs since the Dreamcast continue to use this format for sound and voice recordings. The ADX toolkit also includes a sibling format, AHX, which uses a variant of MPEG-2 audio intended specifically for voice recordings and a packaging archive, AFS, for bundling multiple CRI ADX and AHX tracks into a single container file.
Version 2 of the format (ADX2) uses the HCA and HCA-MX extension, which are usually bundled into a container file with the extensions ACB and AWB. The AWB extension is not to be confused with the Audio format with the same extension and mostly contains the binary data for the HCA files.
CRI ADX is a lossy audio format, but unlike other formats like MP3, it does not apply a psychoacoustic model to the sound to reduce its complexity. The ADPCM model instead stores samples by recording the error relative to a prediction function which means more of the original signal survives the encoding process; trading accuracy of the representation for size by using small sample sizes, usually 4 bits. The human auditory system's tolerance for the noise this causes makes the loss of accuracy barely noticeable.
Like other encoding formats, CRI ADX supports up to 96000 Hz frequencies, however, the output sample depth is locked at 16 bits, generally due to the lack of precision through the use of small sample sizes. It supports multiple channels but there seems to be an implicit limitation of stereo (2 channel) audio although the file format itself can represent up to 255 channels. 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. FFmpeg also has CRI ADX support implemented, but its decoder is hard coded so can only properly decode 44100 Hz ADXs.
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 ADX disk format is defined in big-endian. The identified sections of the main header are outlined below:
Fields labelled "Unknown" contain either unknown data or are apparently just reserved (i.e. filled with null bytes). Fields labelled with 'v3' or 'v4' but not both are considered "Unknown" in the version they are not marked with. 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.
