Adpcm Compression (8-16 Bit)


(Zenon) #1

Hi all, there’s someone can help me about adpcm compression used on MOD / XM ?

I would to implement sample conversion on xrns2xmod converter, but I can’t find any lib/sources for a wav adpcm compression…

PS
Request changed, maybe I need a flac to wav converter library or source…


(Conner_Bw) #2

The FLAC command line utility lets you decompress a flac file into wav using the -d switch, example:

flac -d /path/to/your.flac

Maybe you can temporarily pass off the work to the terminal? Then continue your conversion once you get a wav file?


(Zenon) #3

Hi Conner, problem is not only the result but the input too, because I would work only with byte streams, and flac is under the xrns :wacko: . Calling from executable looks to difficult.

I found some lib in C/C++ but I haven’t figured out yet how to manage them in .NET.


(kazakore) #4

Have you looked at g.722? My guess is XM ADPCM would be based on that but I have no evidence to support it. There are a few open source programs that can play XM that have used their ADPCM so may be worth contacting the Devs of one (or more) of them.


(Zenon) #5

Thanks I’ll looking for this.

Btw seems adpcm compression is not my primary problem but flac conversion instead…


(kazakore) #6

Really? But FLAC’s an open standard isn’t it? Doesn’t this help?

http://flac.sourceforge.net/format.html

Who is who wrote Flic Flac on here? Maybe they can help? Or maybe Taktik can point you towards the resources he used for FLAC in Renoise?

Guess quite a lot of it depends on your programming language though…


(Zenon) #7

yep maybe this can help me

http://flac.sourceforge.net/api/classFLAC_1_1Decoder_1_1Stream.html

Guess I should call these functions from C sharp tought dllImport, but it’s not easy for me :)

Thanks for the advice, hope tomorrow I’ll get some good results


(Beatslaughter) #8

Here is a small tip… to make the FLAC library compatible to the one used by Renoise (support for 32bit FLACs) change the definition of “FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE” from “24u” to “32u” in “format.h”.

http://flac.sourceforge.net/api/format_8h-source.html


(Zenon) #9

Ok, I finally found a nice and simple flac 2 wav converter for C#.

Next target is to put wav data to xm hoping everything goes well.

I don’t know if sample loop data will be ported, because loopStart/loopEnd is based on sample length, and course wav len is different from flac.

But this is just a secondary prob :)

Thanks to all!