Files
klubhaus-doorbell/libraries/audio-tools/examples/examples-dsp/examples-maximilian/07-Counting1/07-Counting1.ino
2026-02-16 19:05:11 -08:00

53 lines
1.5 KiB
C++
Executable File

#include "AudioTools.h"
#include "AudioTools/AudioLibs/MaximilianDSP.h"
// Define Arduino output
I2SStream out;
Maximilian maximilian(out);
// Maximilian
maxiOsc mySine; // This is the oscillator we will use to generate the test tone
maxiClock myClock; // This will allow us to generate a clock signal and do things at specific times
double freq; // This is a variable that we will use to hold and set the current frequency of the oscillator
void setup() {
// setup logging
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
// setup audio output
auto cfg = out.defaultConfig(TX_MODE);
out.begin(cfg);
maximilian.begin(cfg);
// setup maximilian
myClock.setTicksPerBeat(1);//This sets the number of ticks per beat
myClock.setTempo(120);// This sets the tempo in Beats Per Minute
freq=20; // Here we initialise the variable
}
void play(float *output) {
myClock.ticker(); // This makes the clock object count at the current samplerate
//This is a 'conditional'. It does a test and then does something if the test is true
if (myClock.tick) { // If there is an actual tick at this time, this will be true.
freq+=100; // DO SOMETHING
} // The curly braces close the conditional
//output[0] is the left output. output[1] is the right output
output[0]=mySine.sinewave(freq);//simple as that!
output[1]=output[0];
}
// Arduino loop
void loop() {
maximilian.copy();
}