From 8c3b18f79707627d0addfe76724842ad3c0b23f7 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Sun, 23 Feb 2014 19:56:25 -0800 Subject: [PATCH] Finished audio input DC offset correction --- interface/src/Audio.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index fd8922aa41..1089eeab70 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -389,9 +389,10 @@ void Audio::handleAudioInput() { float measuredDcOffset = 0.f; for (int i = 0; i < NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL; i++) { + measuredDcOffset += monoAudioSamples[i]; + monoAudioSamples[i] -= (int16_t) _dcOffset; thisSample = fabsf(monoAudioSamples[i]); loudness += thisSample; - measuredDcOffset += monoAudioSamples[i]; // Noise Reduction: Count peaks above the average loudness if (thisSample > (_noiseGateMeasuredFloor * NOISE_GATE_HEIGHT)) { samplesOverNoiseGate++; @@ -406,8 +407,8 @@ void Audio::handleAudioInput() { _dcOffset = DC_OFFSET_AVERAGING * _dcOffset + (1.f - DC_OFFSET_AVERAGING) * measuredDcOffset; } - //qDebug("DC = %.1f", _dcOffset); - _lastInputLoudness = fabs(loudness / NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL - _dcOffset); + // + _lastInputLoudness = fabs(loudness / NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL); float averageOfAllSampleFrames = 0.f; _noiseSampleFrames[_noiseGateSampleCounter++] = _lastInputLoudness; @@ -428,7 +429,7 @@ void Audio::handleAudioInput() { averageOfAllSampleFrames /= NUMBER_OF_NOISE_SAMPLE_FRAMES; _noiseGateMeasuredFloor = smallestSample; _noiseGateSampleCounter = 0; - qDebug("smallest sample = %.1f, avg of all = %.1f", _noiseGateMeasuredFloor, averageOfAllSampleFrames); + } if (_noiseGateEnabled) {