53 lines
1.5 KiB
C++
Executable File
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();
|
|
}
|