| @@ -0,0 +1,53 @@ | |||
| /* Stereo peak meter example, assumes Audio adapter but just uses terminal so no more parts required. | |||
| This example code is in the public domain | |||
| */ | |||
| #include <Audio.h> | |||
| #include <Wire.h> | |||
| #include <SD.h> | |||
| const int myInput = AUDIO_INPUT_LINEIN; | |||
| // const int myInput = AUDIO_INPUT_MIC; | |||
| AudioInputI2S audioInput; // audio shield: mic or line-in | |||
| AudioPeak peak_L; | |||
| AudioPeak peak_R; | |||
| AudioOutputI2S audioOutput; // audio shield: headphones & line-out | |||
| AudioConnection c1(audioInput,0,peak_L,0); | |||
| AudioConnection c2(audioInput,1,peak_R,0); | |||
| AudioConnection c3(audioInput,0,audioOutput,0); | |||
| AudioConnection c4(audioInput,1,audioOutput,1); | |||
| AudioControlSGTL5000 audioShield; | |||
| void setup() { | |||
| AudioMemory(6); | |||
| audioShield.enable(); | |||
| audioShield.inputSelect(myInput); | |||
| audioShield.volume(75); | |||
| audioShield.unmuteLineout(); | |||
| Serial.begin(1); | |||
| } | |||
| elapsedMillis fps; | |||
| uint8_t cnt=0; | |||
| void loop() { | |||
| if(fps>24) { // for best effect make your terminal/monitor a minimum of 62 chars wide and as high as you can. | |||
| Serial.println(); | |||
| fps=0; | |||
| uint8_t leftPeak=peak_L.Dpp()/2184.5321; // 65536 / 2184.5321 ~ 30. | |||
| for(cnt=0;cnt<30-leftPeak;cnt++) Serial.print(" "); | |||
| while(cnt++<30) Serial.print("<"); | |||
| Serial.print("||"); | |||
| uint8_t rightPeak=peak_R.Dpp()/2184.5321; | |||
| for(cnt=0;cnt<rightPeak;cnt++) Serial.print(">"); | |||
| while(cnt++<30) Serial.print(" "); | |||
| peak_L.begin(); // no need to call .stop if all you want | |||
| peak_R.begin(); // is to zero it. | |||
| } | |||
| } | |||