void approach(const VolumeMatrix &source, const IntegrationCoefficients<T> &coefficients) { for (size_t i = 0; i < CHANNELS; i++) { for (size_t j = 0; j < CHANNELS; j++) { coefficients.integrate(source.volume_[i][j], volume_[i][j]); } } }
S applyWithMinimum(S input, S minimum) { return coeffs.integrate( coeffs.integrate(holdMax.apply(Values::max(input, minimum)), i1), i2); }
S apply(S input) { return coeffs.integrate(coeffs.integrate(holdMax.apply(input), i1), i2); }
void setMetrics(double integrationSamples, size_t holdCount) { holdMax.setHoldCount(holdCount); coeffs.setCharacteristicSamples(integrationSamples); }
void configure(double sampleRate, double rc, Matrix initialVolumes) { integration.setCharacteristicSamples(sampleRate * rc); userVolume = initialVolumes; actualVolume.setAll(0); }
VolumeControl() { userVolume.setAll(0); actualVolume.setAll(0); integration.setCharacteristicSamples(96000 * 0.05); }