falkTX wrote:j_e_f_f_g's code changed too much to still be considered the same project.
It's functionally the same as the original. Same parameters, same sound.
But I did:
1) rewrite in C so it can be used other than just with C++.
2) the one .c and .h file can be directly linked into both a linux or windows C/C++ app with no changes needed.
3) added features that allow other developers to use it in ways the original doesn't, for example operate on 8/16/24/32-bit linear data, mono or stereo data, and interleaved data.
4) reduced its memory usage. Like, in half typically.
5) added missing error checking/handling. For example, the orig will crash under low/fragmented memory conditions. Mine won't.
that thing looks ugly...
That's because it tries to support every uncompressed data format, plus all that logic to squeeze down memory use, and also error-check everything to safely recover instead of crash. You can write a lot "cleaner" code if you remove features, don't care how much RAM you use, and bypass error checking/recovery so that it runs great when all goes well but crashes the host when a problem arises.