FastLED 3.9.15
Loading...
Searching...
No Matches

◆ loop()

void loop ( )

Definition at line 64 of file AudioInput.h.

64 {
65 EVERY_N_MILLIS(1000) { Serial.println("loop active."); }
66 // Check if audio source is valid
67 if (!audioSource) {
68 Serial.println("Audio source is null!");
69 delay(1000);
70 return;
71 }
72
73 // Check for audio errors
74 fl::string errorMsg;
75 if (audioSource->error(&errorMsg)) {
76 Serial.print("Audio error: ");
77 Serial.println(errorMsg.c_str());
78 delay(100);
79 return;
80 }
81
82 // Read audio data
83 fl::AudioSample sample = audioSource->read();
84
85 if (sample.isValid()) {
86 EVERY_N_MILLIS(100) {
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());
90 fl::sstream ss;
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";
96 FL_WARN(ss.str());
97 }
98 }
99}
fl::shared_ptr< fl::IAudioInput > audioSource
Definition AudioInput.h:28
const VectorPCM & pcm() const
Definition audio.cpp:62
float zcf() const
Definition audio.cpp:119
bool isValid() const
Definition audio.h:36
float rms() const
Definition audio.cpp:128
fl::u32 timestamp() const
Definition audio.cpp:121
const char * c_str() const
Definition str.h:326
const string & str() const
Definition strstream.h:51
#define EVERY_N_MILLIS(N)
Checks whether to execute a block of code every N milliseconds.
Definition lib8tion.h:1177
Iterator min_element(Iterator first, Iterator last)
Definition algorithm.h:55
StrStream sstream
Definition sstream.h:6
Iterator max_element(Iterator first, Iterator last)
Definition algorithm.h:17
#define FL_WARN(X)
Definition warn.h:18

References audioSource, fl::StrN< SIZE >::c_str(), EVERY_N_MILLIS, FL_WARN, fl::AudioSample::isValid(), fl::max_element(), fl::min_element(), fl::AudioSample::pcm(), fl::AudioSample::rms(), fl::StrStream::str(), fl::AudioSample::timestamp(), and fl::AudioSample::zcf().

+ Here is the call graph for this function: