Davidelvig
Well-known member
I'm getting results I don't understand from this setup on a Teensy 3.2:
and this physical setup
The mic is an Adafruit Max4466
and using this code:
Serial monitor results start with
Sound input cause all three measures to respond appropriately, but with an increasing, and eventually fixed, non-zero baseline... always (in my setup) with values of 36, 36 and 57.
----141----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----142----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----143----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----144----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----145----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
I'd expect the values to return to (or near) zero.
I'm also expecting I've missed something fundamental.
What am I missing?
Thanks in advance!
and this physical setup
The mic is an Adafruit Max4466
HTML:
https://www.adafruit.com/products/1063
and using this code:
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioInputAnalog adc1; //xy=181,127
AudioAnalyzeRMS rms1; //xy=431,168
AudioAnalyzePeak peak1; //xy=433,130
AudioAnalyzeFFT1024 fft1024_1; //xy=439,211
AudioConnection patchCord1(adc1, peak1);
AudioConnection patchCord2(adc1, rms1);
AudioConnection patchCord3(adc1, fft1024_1);
// GUItool: end automatically generated code
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println("Teensy Audio AudioMemory()");
AudioMemory(10);
}
int pk = 1, rm = 1, ff = 1;
int delayValue = 100;
unsigned long loopCount = 0;
void loop() {
Serial.printf("----%lu----\n", loopCount);
if (peak1.available()) {
pk = (int)(peak1.read() * 100);
for (int i = 0; i < pk; i++) {
Serial.print("p");
}
Serial.printf("\tPeak: %d\n", pk);
} else {
Serial.println("peak1 not available");
}
if (rms1.available()) {
rm = (int)(rms1.read() * 100);
for (int i = 0; i < rm; i++) {
Serial.print("r");
}
Serial.printf("\tRMS: %d\n", rm);
} else {
Serial.println("rms1 not available");
}
if (fft1024_1.available()) {
float fftAccumulator = 0;
for (int i = 0; i < 512; i++) {
fftAccumulator += fft1024_1.read(i);
}
ff = (int)(fftAccumulator * 100);
for (int i = 0; i < ff; i++) {
Serial.print("f");
}
Serial.printf("\tFFT: %d\n", ff);
} else {
Serial.println("fft1024_1 not available");
}
loopCount++;
delay(delayValue); // Delay for a period of time (in milliseconds).
}
Serial monitor results start with
Teensy Audio AudioMemory()
----0----
peak1 not available
rms1 not available
fft1024_1 not available
----1----
Peak: 0
RMS: 0
FFT: 0
----2----
Peak: 0
RMS: 0
FFT: 0
----0----
peak1 not available
rms1 not available
fft1024_1 not available
----1----
Peak: 0
RMS: 0
FFT: 0
----2----
Peak: 0
RMS: 0
FFT: 0
Sound input cause all three measures to respond appropriately, but with an increasing, and eventually fixed, non-zero baseline... always (in my setup) with values of 36, 36 and 57.
----141----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----142----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----143----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----144----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
----145----
pppppppppppppppppppppppppppppppppppp Peak: 36
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr RMS: 36
fffffffffffffffffffffffffffffffffffffffffffffffffffffffff FFT: 57
I'd expect the values to return to (or near) zero.
I'm also expecting I've missed something fundamental.
What am I missing?
Thanks in advance!
Last edited: