libebur128 fork with single precision floats support for esp32(s3). ========== libebur128 is a library that implements the EBU R 128 standard for loudness normalisation. Features -------- * Portable ANSI C code. * Implements Momentary, Shortterm and Integrated modes. * Implements loudness range measurement (EBU - TECH 3342). * True peak scanning. * Supports all samplerates by recalculation of the filter coefficients. * support for conversion of LUFS to discrete levels. Requirements -------- * enable external psram support. * may need to disable watchdog timers based on usage. Installation ------------ * clone the repository into components directory in esp-idf project. Basic Usage ----- ```C #include "ebur128.h" int16_t * data = malloc(48000*sizeof(int16_t)); //data. can be float/int32_t/int16_t ebur128_state* state = ebur128_init(1,48000,EBUR128_MODE_M); ebur128_add_frames_int16_t(state,data,48000); ebur128_loudness_momentary(state,&result); ESP_LOGI(TAG,"result:%f",result); ``` Use test file ----- ```C float test_res = test_file("/sdcard/seq-3341-1-16bit.wav",-23.0,EBUR128_MODE_S); ESP_LOGI(TAG,"res:%0.6f",test_res); ``` test files can be found in [test_signals.gz](test_files.tar.gz) License ----- All source code is licensed under the MIT license.
idf.py add-dependency "danielmadmon/libebur128_esp32s3^0.0.1"