4#include "AudioTools/CoreAudio/AudioOutput.h"
5#include "AudioTools/CoreAudio/AudioStreams.h"
6#include "AudioToolsConfig.h"
112 if (state !=
nullptr)
delete[] state;
144 if (state !=
nullptr)
delete[] state;
151 memset(&state[j], 0,
sizeof(EQSTATE));
179 size_t write(
const uint8_t* data,
size_t len)
override {
181 return p_print->write(data, len);
195 result =
p_stream->readBytes(data, len);
212 (1.0 / 4294967295.0);
250 int16_t* p_dataT = (int16_t*)data;
251 size_t sample_count = len /
sizeof(int16_t);
263 size_t sample_count = len /
sizeof(
int24_t);
274 int32_t* p_dataT = (int32_t*)data;
275 size_t sample_count = len /
sizeof(int32_t);
315 m = es.
sdm3 - (h + l);
366 if (state !=
nullptr)
delete[] state;
380 ConfigEqualizer3Bands defaultConfig() {
return cfg; }
398 if (state !=
nullptr)
delete[] state;
405 memset(&state[j], 0,
sizeof(
EQSTATE));
410 state[j].hf = 2 * sin((
float)PI *
417 void end()
override { is_active =
false; }
432 if (channel >= 0 && channel < p_cfg->channels && !
freq_low.empty()) {
437 if (state !=
nullptr) {
454 float gain_high_val) {
456 if (channel >= 0 && channel < p_cfg->channels && !
gain_low.empty()) {
469 int& freq_high_val) {
470 if (channel >= 0 && channel < p_cfg->channels && !
freq_low.empty()) {
485 float& gain_high_val) {
486 if (channel >= 0 && channel < p_cfg->channels && !
gain_low.empty()) {
499 size_t write(
const uint8_t* data,
size_t len)
override {
501 return p_print->write(data, len);
515 result =
p_stream->readBytes(data, len);
528 bool is_active =
false;
532 (1.0 / 4294967295.0);
584 for (
int i = 0; i < num_channels; i++) {
597 if (!is_active)
return;
600 int16_t* p_dataT = (int16_t*)data;
601 size_t sample_count = len /
sizeof(int16_t);
611 size_t sample_count = len /
sizeof(
int24_t);
620 int32_t* p_dataT = (int32_t*)data;
621 size_t sample_count = len /
sizeof(int32_t);
641 float sample(
int channel,
float sample_val) {
648 es.f1p0 += (es.lf * (sample_val - es.f1p0)) +
vsa;
649 es.f1p1 += (es.lf * (es.f1p0 - es.f1p1));
650 es.f1p2 += (es.lf * (es.f1p1 - es.f1p2));
651 es.f1p3 += (es.lf * (es.f1p2 - es.f1p3));
656 es.f2p0 += (es.hf * (sample_val - es.f2p0)) +
vsa;
657 es.f2p1 += (es.hf * (es.f2p0 - es.f2p1));
658 es.f2p2 += (es.hf * (es.f2p1 - es.f2p2));
659 es.f2p3 += (es.hf * (es.f2p2 - es.f2p3));
661 h = es.sdm3 - es.f2p3;
664 m = es.sdm3 - (h + l);
674 es.sdm1 = sample_val;