This commit is contained in:
2026-02-12 21:00:02 -08:00
parent 77f8236347
commit 8bdbf227ca
1141 changed files with 1010880 additions and 2 deletions

View File

@@ -0,0 +1,59 @@
#include "AudioTools.h"
#include "AudioTools/AudioLibs/MaximilianDSP.h"
#include <FS.h>
#include <SD_MMC.h>
// Arduino output
I2SStream out;
Maximilian maximilian(out);
// Maximilian
maxiSample beats; //We give our sample a name. It's called beats this time. We could have loads of them, but they have to have different names.
maxiDyn compressor; //this is a compressor
float fout;
void setup() {//some inits
// 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 SD to allow file operations
if(!SD_MMC.begin()){
Serial.println("Card Mount Failed");
return;
}
//load in your samples. Provide the full path to a wav file: beat2 is too big
//beats.load("/sdcard/Maximilian/beat2.wav");
beats.load("/sdcard/Maximilian/snare.wav");
Serial.println(beats.getSummary().c_str());//get info on samples if you like.
compressor.setAttack(100);
compressor.setRelease(300);
compressor.setThreshold(0.25);
compressor.setRatio(5);
//you can set these any time you like.
}
void play(float *output) {//this is where the magic happens. Very slow magic.
//here, we're just compressing the file in real-time
//arguments are input,ratio,threshold,attack,release
fout=compressor.compress(beats.play());
output[0]=fout;
output[1]=fout;
}
// Arduino loop
void loop() {
maximilian.copy();
}