Krotos Modules 3
Loading...
Searching...
No Matches
WeightingFilter.cpp
Go to the documentation of this file.
1#include "WeightingFilter.h"
2
3//=====================================================================================
8
9//=====================================================================================
10void krotos::WeightingFilter::configure(double rate, FilterType filter_type)
11{
12
13 switch (filter_type)
14 {
16 // K filtering as specified in EBU R-128 / ITU BS.1770-4
17 // https://github.com/BrechtDeMan/loudness.py/blob/master/loudness.py
18 // https://github.com/csteinmetz1/pyloudnorm/blob/master/pyloudnorm/meter.py
19
20 m_highShelf.configure(rate, krotos::BiquadFilter::FilterType::HighShelfDeMan);
21 m_highPass.configure(rate, krotos::BiquadFilter::FilterType::HighPassDeMan);
22
23 configured = true;
24
25 break;
26 }
27 }
28}
29
30//=====================================================================================
32{
33 assert(configured);
34
35 x = m_highShelf.processSample(x);
36 x = m_highPass.processSample(x);
37
38 return x;
39}
@ HighPassDeMan
Definition BiquadFilter.h:19
@ HighShelfDeMan
Definition BiquadFilter.h:18
void configure(double rate, FilterType filter_type)
Definition WeightingFilter.cpp:10
FilterType
Definition WeightingFilter.h:17
@ KWeighting
Definition WeightingFilter.h:18
float processSample(float x)
Definition WeightingFilter.cpp:31
WeightingFilter()
Definition WeightingFilter.cpp:4