Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
AudioSynthWaveformSine sine5; //xy=55,609
AudioSynthWaveformSine sine3; //xy=59,527
AudioSynthWaveformSine sine4; //xy=59,566
AudioSynthWaveformSine sine6; //xy=61,660
AudioSynthWaveformSine sine7; //xy=62,706
AudioSynthWaveformSine sine8; //xy=64,756
AudioSynthWaveformSine sine2; //xy=66,489.0000066757202
AudioSynthWaveformSine sine1; //xy=67,438.0000047683716
AudioMixer4 mixer2; //xy=199.00000190734863,579.0000076293945
AudioMixer4 mixer1; //xy=200,502
AudioInputI2S i2s1; //xy=421.42857360839844,318.5714225769043
AudioOutputI2S i2s2; //xy=422.85714285714283,532.8571428571428
AudioAnalyzeFFT1024 fft; //xy=577,303
AudioConnection patchCord1(sine5, 0, mixer2, 0);
AudioConnection patchCord2(sine3, 0, mixer1, 2);
AudioConnection patchCord3(sine4, 0, mixer1, 3);
AudioConnection patchCord4(sine6, 0, mixer2, 1);
AudioConnection patchCord5(sine7, 0, mixer2, 2);
AudioConnection patchCord6(sine8, 0, mixer2, 3);
AudioConnection patchCord7(sine2, 0, mixer1, 1);
AudioConnection patchCord8(sine1, 0, mixer1, 0);
AudioConnection patchCord9(mixer2, 0, i2s2, 1);
AudioConnection patchCord10(mixer1, 0, i2s2, 0);
AudioConnection patchCord11(i2s1, 0, fft, 0);
AudioControlSGTL5000 audioShield;
const int freq_range = 32768;
const int bins = 1024;
const int bin_width = freq_range/bins;
double mag[bins];
void setup() {
// put your setup code here, to run once:;
analogReadResolution(12);
AudioMemory(40);
audioShield.enable();
audioShield.inputSelect(AUDIO_INPUT_MIC);;
audioShield.micGain(63);
audioShield.volume(2);
fft.windowFunction(AudioWindowHanning1024);
Serial.begin(9600);
mixer1.gain(0, 1);
mixer1.gain(1, 1);
mixer1.gain(2, 1);
mixer1.gain(3, 1);
mixer2.gain(0, 1);
mixer2.gain(1, 1);
mixer2.gain(2, 1);
mixer2.gain(3, 1);
sine1.frequency(500);
sine1.amplitude(0.95);
sine5.frequency(500);
sine5.amplitude(0.95);
}
void loop() {
// put your main code here, to run repeatedly:
if(fft.available())
{
for(int i=0; i<(bins/2); i++) {
mag[i]=fft.read(i);
Serial.println(mag[i], 1);
}
}
}