From 23d83ff4449173ebae4d04a6b81b57863f1051cc Mon Sep 17 00:00:00 2001 From: Chip Audette Date: Sun, 19 Feb 2017 22:18:43 -0500 Subject: [PATCH] Adjust formatting --- AudioEffectGain_F32.h | 24 ++++++++++++------------ AudioFilterFIR_F32.h | 27 ++++++++++++++++++++------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/AudioEffectGain_F32.h b/AudioEffectGain_F32.h index 307cfd4..1ad3aa1 100644 --- a/AudioEffectGain_F32.h +++ b/AudioEffectGain_F32.h @@ -24,18 +24,18 @@ class AudioEffectGain_F32 : public AudioStream_F32 //here's the method that does all the work void update(void) { - //Serial.println("AudioEffectGain_F32: updating."); //for debugging. - audio_block_f32_t *block; - block = AudioStream_F32::receiveWritable_f32(); - if (!block) return; - - //apply the gain - //for (int i = 0; i < AUDIO_BLOCK_SAMPLES; i++) block->data[i] = gain * (block->data[i]); //non DSP way to do it - arm_scale_f32(block->data, gain, block->data, block->length); //use ARM DSP for speed! - - //transmit the block and be done - AudioStream_F32::transmit(block); - AudioStream_F32::release(block); + //Serial.println("AudioEffectGain_F32: updating."); //for debugging. + audio_block_f32_t *block; + block = AudioStream_F32::receiveWritable_f32(); + if (!block) return; + + //apply the gain + //for (int i = 0; i < AUDIO_BLOCK_SAMPLES; i++) block->data[i] = gain * (block->data[i]); //non DSP way to do it + arm_scale_f32(block->data, gain, block->data, block->length); //use ARM DSP for speed! + + //transmit the block and be done + AudioStream_F32::transmit(block); + AudioStream_F32::release(block); } //methods to set parameters of this module diff --git a/AudioFilterFIR_F32.h b/AudioFilterFIR_F32.h index d331d32..3102a39 100644 --- a/AudioFilterFIR_F32.h +++ b/AudioFilterFIR_F32.h @@ -31,11 +31,17 @@ class AudioFilterFIR_F32 : public AudioStream_F32 void begin(const float32_t *cp, const int _n_coeffs, const int block_size) { //or, you can provide it with the block size coeff_p = cp; n_coeffs = _n_coeffs; - + // Initialize FIR instance (ARM DSP Math Library) if (coeff_p && (coeff_p != FIR_F32_PASSTHRU) && n_coeffs <= FIR_MAX_COEFFS) { arm_fir_init_f32(&fir_inst, n_coeffs, (float32_t *)coeff_p, &StateF32[0], block_size); configured_block_size = block_size; + Serial.print("AudioFilterFIR_F32: FIR is initialized. N_FIR = "); Serial.print(n_coeffs); + Serial.print(", Block Size = "); Serial.println(block_size); + //} else { + // Serial.print("AudioFilterFIR_F32: *** ERROR ***: Cound not initialize. N_FIR = "); Serial.print(n_coeffs); + // Serial.print(", Block Size = "); Serial.println(block_size); + // coeff_p = NULL; } } void end(void) { coeff_p = NULL; } @@ -59,7 +65,7 @@ class AudioFilterFIR_F32 : public AudioStream_F32 void AudioFilterFIR_F32::update(void) { - audio_block_f32_t *block, *b_new; + audio_block_f32_t *block, *block_new; block = AudioStream_F32::receiveReadOnly_f32(); if (!block) return; @@ -75,22 +81,29 @@ void AudioFilterFIR_F32::update(void) // Just passthrough AudioStream_F32::transmit(block); AudioStream_F32::release(block); + //Serial.println("AudioFilterFIR_F32: update(): PASSTHRU."); return; } // get a block for the FIR output - b_new = AudioStream_F32::allocate_f32(); - if (b_new) { + block_new = AudioStream_F32::allocate_f32(); + if (block_new) { + //check to make sure our FIR instance has the right size if (block->length != configured_block_size) { //doesn't match. re-initialize Serial.println("AudioFilterFIR_F32: block size doesn't match. Re-initializing FIR."); begin(coeff_p, n_coeffs, block->length); //initialize with same coefficients, just a new block length } + //apply the FIR - arm_fir_f32(&fir_inst, (float32_t *)block->data, (float32_t *)b_new->data, block->length); - AudioStream_F32::transmit(b_new); // send the FIR output - AudioStream_F32::release(b_new); + arm_fir_f32(&fir_inst, block->data, block_new->data, block->length); + //Serial.print("AudioFilterFIR_F32: update(): fir_inst: "); + //Serial.print(fir_inst.numTaps); Serial.print(", "); + //Serial.print(fir_inst.pState[10]*1000.f); Serial.print(", "); + //Serial.print(fir_inst.pCoeffs[10]*1000.f); Serial.println(); + AudioStream_F32::transmit(block_new); // send the FIR output + AudioStream_F32::release(block_new); } AudioStream_F32::release(block); }