Discussion:
[SoX-users] MS-ADPCM specify Block align
Will
2017-03-09 05:21:32 UTC
Permalink
I'm using sox to convert audio files to a specific wav format required by a
game, but am not finding success.

The only difference I can see is the block size - the original game audio
uses blocks of 256 bytes, whilst sox produces files using 2048 bytes.

My uneducated guess here is that the game is using Microsoft's library for
decoding:
https://msdn.microsoft.com/en-us/library/windows/desktop/ee415711%28v=vs.85%29.aspx

This specifies a maximum allowed SamplesPerBlock of 512 - with a block size
of 2048 bytes, the file has 2036 samples per block.

Is there a way to specify block size when converting to ADPCM? I tried
several -C numbers but it doesn't seem to be used for ADPCM.
Will
2017-05-05 10:16:23 UTC
Permalink
As a followup, I managed to achieve this using the libsox library and some
filthy hacks.

By starting a conversion chain, adjusting private parameters before
conversion, then fixing some headers, the results are identical to a
recompile of the sox library.

Code here: https://github.com/mon/2dxTools/blob/master/2dxWav.c
Post by Will
I'm using sox to convert audio files to a specific wav format required by
a game, but am not finding success.
The only difference I can see is the block size - the original game audio
uses blocks of 256 bytes, whilst sox produces files using 2048 bytes.
My uneducated guess here is that the game is using Microsoft's library for
https://msdn.microsoft.com/en-us/library/windows/desktop/
ee415711%28v=vs.85%29.aspx
This specifies a maximum allowed SamplesPerBlock of 512 - with a block
size of 2048 bytes, the file has 2036 samples per block.
Is there a way to specify block size when converting to ADPCM? I tried
several -C numbers but it doesn't seem to be used for ADPCM.
Loading...