MCPcopy Create free account
hub / github.com/LabSound/LabSound / setNormalize

Method setNormalize

src/core/ConvolverNode.cpp:143–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141 return _normalize->valueBool();
142}
143void ConvolverNode::setNormalize(bool new_n)
144{
145 bool n = normalize();
146 if (new_n == n)
147 return;
148
149 auto clip = _impulseResponseClip->valueBus();
150 if (clip)
151 {
152 size_t len = clip->length();
153 if (n && _scale != 1.f)
154 {
155 // undo previous normalization
156 float s = 1.f / _scale;
157 for (int i = 0; i < clip->numberOfChannels(); ++i)
158 {
159 float * data = clip->channel(i)->mutableData();
160 for (int j = 0; j < len; ++j)
161 data[j] *= s;
162 }
163 }
164 if (!n)
165 {
166 // wasn't previously normalized, so normalize
167 _scale = calculateNormalizationScale(clip.get());
168 for (int i = 0; i < clip->numberOfChannels(); ++i)
169 {
170 float * data = clip->channel(i)->mutableData();
171 for (int j = 0; j < len; ++j)
172 data[j] *= _scale;
173 }
174 }
175 }
176
177 _normalize->setBool(new_n);
178}
179
180void ConvolverNode::setImpulse(std::shared_ptr<AudioBus> bus)
181{

Callers

nothing calls this directly

Calls 9

normalizeFunction · 0.85
valueBusMethod · 0.80
mutableDataMethod · 0.80
channelMethod · 0.80
getMethod · 0.80
setBoolMethod · 0.80
lengthMethod · 0.45
numberOfChannelsMethod · 0.45

Tested by

no test coverage detected