void TemporalSparsity::performCalculation() { double rms = signal_rms(input); rmsWindow->addValue(rms); double max = 0; double sum = 0; value=0; double* rms_item = rmsWindow->getData(); int rms_size = rmsWindow->getSize(); for (int i = 0; i < rms_size; i++) { max = maximum(max, (*rms_item)); sum += (*rms_item); rms_item ++; } if (sum) { if (rmsWindow->getSize() >= rmsWindow->getMaxSize()) value = max / sum; else value = (double(rmsWindow->getSize()) / double(rmsWindow->getMaxSize())) * max / sum; } }
void Loudness::performCalculation() { double rms_val=signal_rms(input); if (rms_val) value = 20 * log10(rms_val); else value = 20 * log10(10e-6); }