ADPCM codecs

ADPCM codecs are used to encode samples to be used by the YM2610.

All the code in this page process 16bit monoral, little endian raw sound data data (".snd" files, Goldwave can output this), make sure to have your samples at the proper frequency. C# implementation.

Remember to size/pad your sample so it's a 256 bytes multiple, this is not done in the following code.

ADPCM-A
This codec accepts 18.5kHz samples, playback rate is fixed.

Inspired by Mame and MVStracker. This codec implementation was done with some trial & error, might not be 100% correct. It however fixes the issue with long samples degenerating.

Encoding example:

ADPCM-B
This codec accepts 1.8kHz ~ 55.5kHz samples, playback rate has to be specified at runtime.

Official codec from the YM2610 datasheeet, works fine.