Releases: Clownacy/clownaudio
v0.3.1
The old CLI example Makefile was broken and the Arch Linux package had an incorrect dependency. These have both been fixed.
The big change in this release is that clownaudio can now be compiled as either C99 or C++98: this can be controlled with the CMake script's CLOWNAUDIO_CPP
option. This way, clownaudio can be compiled by both Visual C++ 6.0 (which only supports C89 and C++98) and the Tiny C Compiler (which only supports a subset of C99) without modification.
Please keep in mind that some built-in decoder backends do not support this: namely, PxTone and SNES_SPC can only be compiled as C++, while libxmp-lite can only be compiled as C.
v0.3.0.1
v0.3
This project's been dormant for a while and the codebase seems stable enough, so I figure I should make a release.
Internally clownaudio now operates in S16 instead of F32. This should hopefully lead to performance improvements as sample-conversion between the decoder backends and the mixer will be bypassed. Likewise, S16 uses less memory and may even be faster depending on integer vs. float performance differences.
Additionally, miniaudio, stb_vorbis, dr_flac, dr_mp3, and dr_wav have been updated, and a buffer overflow in PxTone has been corrected.
v0.2
Development has finally slowed-down, after months of brutal reworking. The library is much better now, I think.
Highlights include...
- Being an actual installable library (supporting both pkg-config and CMake)
- Providing a stripped-down 'mixer-only' mode that enables the library to run on exotic platforms such as the Wii U (32-bit big-endian PowerPC CPU, running devkitPro's newlib C library, and sporting its own sound API called "AX"), thus giving the library both a user-friendly 'high-level' API, and a power-user-oriented 'low-level' API, which grants the user complete control over audio playback, mutexes, and other platform-dependent tasks
- Embedding a copy of libxmp-lite directly into the library's source, removing the dependency on a package seldom found in distros (Arch Linux and MSYS2 in particular)
- Converting the majority of code from C99 to C++98, enabling the library to be built with vintage compilers such as Visual C++ 6
- Actual documentation of the API
Unfortunately, the API is likely far away from stabilising, so this isn't a "real" library yet. If that ever happens, the version number will probably be bumped to v1.0. Until then, I'm sticking with v0.x.