Cross Platform C++14 library.
- remove TKLB_SAMPLE_FLOAT
- FFT convolution
- Codecs
- Streaming codecs
- File abstraction from vae
- Resamplers
- FFT Interface
- Vector math from vae
- Serializer
Define in compilation unit
Will disable asserts reduce logging to warnings and above.
Enables the wrapped tracy profiler
No Exceptions are thrown anywhere in tklb and wrapped assertions are used instead.
Will disable all assertions
Will try to signal the attached debugger to break instead of an assert which can be convenient at times.
Will get rid of all standard library includes if
TKLB_NO_SIMD
is also defined to get rid ofxsimd
.TKLB_NO_LOG
is defined, since the logger pulls instdarg.h
andstddef.h
.TKLB_USE_PROFILER
is not defined.TKLB_ASSERT()
is defined to a custom assert function or assertions are disabled withTKLB_NO_ASSERT
to avoid<cassert>
.
Also see TKLB_CUSTOM_MALLOC
and TKLB_CUSTOM_PRINT
Allows defining custom tklb_free
and tklb_malloc
without fully dropping the std lib.
Logging needs around 2k of static memory and messages will be truncated to 1024 characters. Offers severity and file + line number for convenience.
DEBUG | vae_engine.hpp:236 | Initializing engine...
DEBUG | vae_engine.hpp:245 | Engine initialized
INFO | vae_bank_manager.hpp:77 | Loading bank from file ./bank1
DEBUG | vae_bank_loader.hpp:56 | Started loading bank bank1
ERROR | vae_bank_loader.hpp:66 | Failed to read file
ERROR | vae_bank_manager.hpp:81 | Failed to load bank from file ./bank1
INFO | vae_engine.hpp:879 | Start unloading all banks
INFO | vae_engine.hpp:217 | Engine destructed
Allows to redirect the formatted logging messages to a custom implementation of tklb_print
TODO allow custom print formatting to disable stb_sprintf.h
Will disable the tklb logger completly.
Will force all log message even when TKLB_RELEASE
is defined.
Disables SSE or other intrinsics via xsimd
and attempts to do the same for dependecies.
Wrap all allocations with magic numbers and validate them (uses std malloc and will define tklb_malloc) Heapbuffer will check bounds for every access
Will set the prefered sample type to float.
This means the AudioBuffer implementations will default to it, and external library code will use floats for processing if possible.