BirdNet-goMikrofon/Arduino-audio-tools-main/arduino-audio-tools-main/examples/examples-dsp/examples-pd/streams-generator-pd-audiokit/streams-generator-pd-audiokit.ino

47 lines
1.2 KiB
Arduino
Raw Permalink Normal View History

2026-09-26 01:20:55 +02:00
/**
* Test sketch for adc2dac.pd that was compiled with hvcc -n Adc2Dac adc2dac.pd
* The ADC receives data from the SineGenerator and the output from the
* DAC is copied to I2S (AudioBoardStream)
*/
#include "AudioTools.h"
#include "AudioTools/AudioLibs/AudioBoardStream.h"
#include "Heavy_Adc2Dac.hpp"
#include "AudioTools/AudioLibs/PureDataStream.h"
AudioInfo info(44100, 2, 16);
Heavy_Adc2Dac pd_test(info.sample_rate);
PureDataStream pd(pd_test);
AudioBoardStream i2s(AudioKitEs8388V1); // final output of decoded stream
SineGenerator<int16_t> sineWave; // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave); // Stream generated from sine wave
StreamCopy copierToPd(pd, sound, 1024);
StreamCopy copierFromPd(i2s, pd, 1024);
void setup() {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);
// setup output
auto config = i2s.defaultConfig(TX_MODE);
config.sd_active = false;
config.copyFrom(info);
i2s.begin(config);
// setup input
sineWave.begin(info, N_B4);
// setup pd
pd.begin();
}
void loop() {
// provide data to adc
copierToPd.copy();
// get data from dac
copierFromPd.copy();
}