14 ignoreUnused(sampleRate);
15 ignoreUnused(samplesPerBlock);
17 for (
int j = 0; j < 2; j++)
26 inputSample = inputSample *
m_gain;
27 inputSample =
m_filter1[numChannel](inputSample);
28 inputSample =
m_filter2[numChannel](inputSample);
35 m_gain = 10.0f / std::max(distance, 10.0f);
37 auto index = jmap<float>(distance, 1.0f, 70.0f, 0.0f, 6.0f);
38 auto mu = index - std::floor(index);
55 const float a1 = 0.0503f;
56 const float a2 = 0.849f;
57 const std::array<float, 7> b1Array{0.0168f, 0.034f, 0.052f, 0.069f, 0.085f, 0.102f, 0.1182f};
58 const std::array<float, 7> b2Array{0.02f, 0.02f, 0.06f, 0.08f, 0.1f, 0.12f, 0.14f};
59 auto b1 = b1Array[index];
60 auto b2 = b2Array[index];
68 std::vector<float> y(N);
69 for (
int i = 0; i < N; ++i)
72 auto x = (i == 0) ? 1.0f : 0.0f;
77 std::ofstream outputFile(outfile.toStdString());
78 if (!outputFile.is_open())
80 DBG(
"Failed to open file: ");
83 for (
const auto& value : y)
85 outputFile << value <<
" ";
99 auto r = (a + b - 1.0f) * s + (1.0f - b) * x1 + (1.0f - a) * y1;
std::array< float, 8 > m_b1
Definition AirAbsorptionFilter.h:25
void test_impulse_response(std::size_t index, String outfile)
Definition AirAbsorptionFilter.cpp:49
AirAbsorptionFilter()
Definition AirAbsorptionFilter.cpp:3
float m_gain
Definition AirAbsorptionFilter.h:19
float m_a2
Definition AirAbsorptionFilter.h:24
float process(float inputSample, int numChannel)
Definition AirAbsorptionFilter.cpp:24
void setDistance(float distance)
Definition AirAbsorptionFilter.cpp:33
float m_a1
Definition AirAbsorptionFilter.h:23
void prepare(double sampleRate, int samplesPerBlock)
Definition AirAbsorptionFilter.cpp:12
modified_lowpass m_filter2[2]
Definition AirAbsorptionFilter.h:47
constexpr float linear_interpolate(float y1, float y2, float mu)
Definition AirAbsorptionFilter.h:17
std::array< float, 8 > m_b2
Definition AirAbsorptionFilter.h:26
modified_lowpass m_filter1[2]
Definition AirAbsorptionFilter.h:46
Definition AirAbsorptionFilter.cpp:2
float operator()(float s)
Definition AirAbsorptionFilter.cpp:96
void config(float a_, float b_)
Definition AirAbsorptionFilter.cpp:110
float a
Definition AirAbsorptionFilter.h:39
modified_lowpass(float a=0.0f, float b=0.0f)
Definition AirAbsorptionFilter.cpp:94
float b
Definition AirAbsorptionFilter.h:39
void reset()
Definition AirAbsorptionFilter.cpp:116