MCPcopy Create free account
hub / github.com/LMMS/lmms / processAudioBuffer

Method processAudioBuffer

plugins/DualFilter/DualFilter.cpp:76–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74
75
76bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames )
77{
78 if( !isEnabled() || !isRunning () )
79 {
80 return( false );
81 }
82
83 double outSum = 0.0;
84 const float d = dryLevel();
85 const float w = wetLevel();
86
87 if( m_dfControls.m_filter1Model.isValueChanged() || m_filter1changed )
88 {
89 m_filter1->setFilterType( m_dfControls.m_filter1Model.value() );
90 m_filter1changed = true;
91 }
92 if( m_dfControls.m_filter2Model.isValueChanged() || m_filter2changed )
93 {
94 m_filter2->setFilterType( m_dfControls.m_filter2Model.value() );
95 m_filter2changed = true;
96 }
97
98 float cut1 = m_dfControls.m_cut1Model.value();
99 float res1 = m_dfControls.m_res1Model.value();
100 float gain1 = m_dfControls.m_gain1Model.value();
101 float cut2 = m_dfControls.m_cut2Model.value();
102 float res2 = m_dfControls.m_res2Model.value();
103 float gain2 = m_dfControls.m_gain2Model.value();
104 float mix = m_dfControls.m_mixModel.value();
105
106 ValueBuffer *cut1Buffer = m_dfControls.m_cut1Model.valueBuffer();
107 ValueBuffer *res1Buffer = m_dfControls.m_res1Model.valueBuffer();
108 ValueBuffer *gain1Buffer = m_dfControls.m_gain1Model.valueBuffer();
109 ValueBuffer *cut2Buffer = m_dfControls.m_cut2Model.valueBuffer();
110 ValueBuffer *res2Buffer = m_dfControls.m_res2Model.valueBuffer();
111 ValueBuffer *gain2Buffer = m_dfControls.m_gain2Model.valueBuffer();
112 ValueBuffer *mixBuffer = m_dfControls.m_mixModel.valueBuffer();
113
114 int cut1Inc = cut1Buffer ? 1 : 0;
115 int res1Inc = res1Buffer ? 1 : 0;
116 int gain1Inc = gain1Buffer ? 1 : 0;
117 int cut2Inc = cut2Buffer ? 1 : 0;
118 int res2Inc = res2Buffer ? 1 : 0;
119 int gain2Inc = gain2Buffer ? 1 : 0;
120 int mixInc = mixBuffer ? 1 : 0;
121
122 float *cut1Ptr = cut1Buffer ? &( cut1Buffer->values()[ 0 ] ) : &cut1;
123 float *res1Ptr = res1Buffer ? &( res1Buffer->values()[ 0 ] ) : &res1;
124 float *gain1Ptr = gain1Buffer ? &( gain1Buffer->values()[ 0 ] ) : &gain1;
125 float *cut2Ptr = cut2Buffer ? &( cut2Buffer->values()[ 0 ] ) : &cut2;
126 float *res2Ptr = res2Buffer ? &( res2Buffer->values()[ 0 ] ) : &res2;
127 float *gain2Ptr = gain2Buffer ? &( gain2Buffer->values()[ 0 ] ) : &gain2;
128 float *mixPtr = mixBuffer ? &( mixBuffer->values()[ 0 ] ) : &mix;
129
130 const bool enabled1 = m_dfControls.m_enabled1Model.value();
131 const bool enabled2 = m_dfControls.m_enabled2Model.value();
132
133

Callers

nothing calls this directly

Calls 10

isEnabledFunction · 0.85
dryLevelFunction · 0.85
wetLevelFunction · 0.85
setFilterTypeMethod · 0.80
valuesMethod · 0.80
calcFilterCoeffsMethod · 0.80
isRunningFunction · 0.50
valueMethod · 0.45
valueBufferMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected