17#include "platforms/esp/32/audio/sound_util.h"
25#define I2S_CHANNEL fl::Right
33 Serial.println(
"I2S Audio FastLED Example");
34 Serial.println(
"Waiting 5000ms for audio device to stdout initialization...");
42 Serial.print(
"Failed to create audio source: ");
43 Serial.println(errorMsg.
c_str());
49 Serial.println(
"Starting audio capture...");
55 Serial.print(
"Audio start error: ");
56 Serial.println(startErrorMsg.
c_str());
60 Serial.println(
"Audio capture started!");
68 Serial.println(
"Audio source is null!");
76 Serial.print(
"Audio error: ");
77 Serial.println(errorMsg.
c_str());
87 const auto& audioBuffer = sample.
pcm();
88 const i16* max_sample =
fl::max_element(audioBuffer.begin(), audioBuffer.end());
89 const i16* min_sample =
fl::min_element(audioBuffer.begin(), audioBuffer.end());
91 ss <<
"\nRead " << audioBuffer.size() <<
" samples, timestamp: " << sample.
timestamp() <<
"ms\n";
92 ss <<
"Max sample: " << *max_sample <<
"\n";
93 ss <<
"Min sample: " << *min_sample <<
"\n";
94 ss <<
"RMS: " << sample.
rms() <<
"\n";
95 ss <<
"ZCF: " << sample.
zcf() <<
"\n";
central include file for FastLED, defines the CFastLED class/object
const VectorPCM & pcm() const
fl::u32 timestamp() const
const char * c_str() const
const string & str() const
#define EVERY_N_MILLIS(N)
Checks whether to execute a block of code every N milliseconds.
Iterator min_element(Iterator first, Iterator last)
Iterator max_element(Iterator first, Iterator last)