Looking for documentation for how to use a few filters and use the audio queue and playback. Specifically to output left channel and right channel separate as my pcb I made has two mems microphones
I’m trying to follow the GUI designer but it’s not for newbies like myself
Here is my code: (pseudo code)
Setup()
AudioInputI2S i2sIN;
AudioOutputI2S i2sOUT;
AudioFilterBiquad biquadINNER;
AudioFilterBiquad biquadOUTER;
AudioRecordQueue queueInInner;
AudioRecordQueue queueInOuter;
AudioPlayQueue queueOut;
AudioConnection pathCord0(i2sIN,0,biquadINNER,0);
AudioConnection pathCord3(i2sIN,1,biquadOUTER,0);
AudioConnection patchCord1(biquadINNER, 0, queueInInner, 0); // This is where we swap channels if necessary
AudioConnection patchCord2(biquadOUTER, 0, queueInOuter, 0); // Swap these two 0,1 to swap audio channels
AudioConnection patchCord9(queueOut,0,i2sOUT,0);
AudioConnection patchCord10(queueOut,0,i2sOUT,1);
AudioControlSGTL5000 sgtl5000_1;
Loop()
if (queueInInner.available() >= 2 && queueInOuter.available() >= 2) { //input buffer is filled, unload it please
memcpy(bufferOuter, queueInOuter.readBuffer(), 256);
memcpy(bufferInner, queueInInner.readBuffer(), 256);
memcpy(bufferAverage+(256*buffer_ptr), bufferInner, 256);
/*if (filterSwitch == 1) {
my_adaptive_filter(bufferInner, bufferInnerLeftover, bufferOuter, bufferOuterLeftover, errorout, aweights,10000, BufferLen, AFiltLen);
}*/
memcpy(errorout, bufferInner, 256);
int16_t * playerptr = queueOut.getBuffer();
memcpy(playerptr,errorout,256);
memcpy(bufferAverage+(256*buffer_ptr++), errorout, 256);
queueOut.playBuffer();
queueInOuter.freeBuffer();
queueInInner.freeBuffer();
}
I’m trying to follow the GUI designer but it’s not for newbies like myself
Here is my code: (pseudo code)
Setup()
AudioInputI2S i2sIN;
AudioOutputI2S i2sOUT;
AudioFilterBiquad biquadINNER;
AudioFilterBiquad biquadOUTER;
AudioRecordQueue queueInInner;
AudioRecordQueue queueInOuter;
AudioPlayQueue queueOut;
AudioConnection pathCord0(i2sIN,0,biquadINNER,0);
AudioConnection pathCord3(i2sIN,1,biquadOUTER,0);
AudioConnection patchCord1(biquadINNER, 0, queueInInner, 0); // This is where we swap channels if necessary
AudioConnection patchCord2(biquadOUTER, 0, queueInOuter, 0); // Swap these two 0,1 to swap audio channels
AudioConnection patchCord9(queueOut,0,i2sOUT,0);
AudioConnection patchCord10(queueOut,0,i2sOUT,1);
AudioControlSGTL5000 sgtl5000_1;
Loop()
if (queueInInner.available() >= 2 && queueInOuter.available() >= 2) { //input buffer is filled, unload it please
memcpy(bufferOuter, queueInOuter.readBuffer(), 256);
memcpy(bufferInner, queueInInner.readBuffer(), 256);
memcpy(bufferAverage+(256*buffer_ptr), bufferInner, 256);
/*if (filterSwitch == 1) {
my_adaptive_filter(bufferInner, bufferInnerLeftover, bufferOuter, bufferOuterLeftover, errorout, aweights,10000, BufferLen, AFiltLen);
}*/
memcpy(errorout, bufferInner, 256);
int16_t * playerptr = queueOut.getBuffer();
memcpy(playerptr,errorout,256);
memcpy(bufferAverage+(256*buffer_ptr++), errorout, 256);
queueOut.playBuffer();
queueInOuter.freeBuffer();
queueInInner.freeBuffer();
}