Beispiel #1
0
	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;
			
		}
	}	
Beispiel #2
0
	void Loudness::performCalculation() {
		double rms_val=signal_rms(input);
		if (rms_val)
			value = 20 * log10(rms_val);
		else
			value = 20 * log10(10e-6);
	}