snapshot
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
declare filename "copy.dsp";
|
||||
declare name "copy";
|
||||
process = _,_;
|
||||
@@ -0,0 +1,106 @@
|
||||
/* ------------------------------------------------------------
|
||||
name: "Copy"
|
||||
Code generated with Faust 2.68.1 (https://faust.grame.fr)
|
||||
Compilation options: -lang cpp -ct 1 -es 1 -mcd 16 -single -ftz 0
|
||||
------------------------------------------------------------ */
|
||||
|
||||
#ifndef __mydsp_H__
|
||||
#define __mydsp_H__
|
||||
|
||||
#ifndef FAUSTFLOAT
|
||||
#define FAUSTFLOAT float
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
|
||||
#ifndef FAUSTCLASS
|
||||
#define FAUSTCLASS mydsp
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define exp10f __exp10f
|
||||
#define exp10 __exp10
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define RESTRICT __restrict
|
||||
#else
|
||||
#define RESTRICT __restrict__
|
||||
#endif
|
||||
|
||||
|
||||
class mydsp : public dsp {
|
||||
|
||||
private:
|
||||
|
||||
int fSampleRate;
|
||||
|
||||
public:
|
||||
mydsp() {}
|
||||
|
||||
void metadata(Meta* m) {
|
||||
m->declare("compile_options", "-lang cpp -ct 1 -es 1 -mcd 16 -single -ftz 0");
|
||||
m->declare("filename", "Copy.dsp");
|
||||
m->declare("name", "Copy");
|
||||
}
|
||||
|
||||
virtual int getNumInputs() {
|
||||
return 2;
|
||||
}
|
||||
virtual int getNumOutputs() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
static void classInit(int sample_rate) {
|
||||
}
|
||||
|
||||
virtual void instanceConstants(int sample_rate) {
|
||||
fSampleRate = sample_rate;
|
||||
}
|
||||
|
||||
virtual void instanceResetUserInterface() {
|
||||
}
|
||||
|
||||
virtual void instanceClear() {
|
||||
}
|
||||
|
||||
virtual void init(int sample_rate) {
|
||||
classInit(sample_rate);
|
||||
instanceInit(sample_rate);
|
||||
}
|
||||
|
||||
virtual void instanceInit(int sample_rate) {
|
||||
instanceConstants(sample_rate);
|
||||
instanceResetUserInterface();
|
||||
instanceClear();
|
||||
}
|
||||
|
||||
virtual mydsp* clone() {
|
||||
return new mydsp();
|
||||
}
|
||||
|
||||
virtual int getSampleRate() {
|
||||
return fSampleRate;
|
||||
}
|
||||
|
||||
virtual void buildUserInterface(UI* ui_interface) {
|
||||
ui_interface->openVerticalBox("Copy");
|
||||
ui_interface->closeBox();
|
||||
}
|
||||
|
||||
virtual void compute(int count, FAUSTFLOAT** RESTRICT inputs, FAUSTFLOAT** RESTRICT outputs) {
|
||||
FAUSTFLOAT* input0 = inputs[0];
|
||||
FAUSTFLOAT* input1 = inputs[1];
|
||||
FAUSTFLOAT* output0 = outputs[0];
|
||||
FAUSTFLOAT* output1 = outputs[1];
|
||||
for (int i0 = 0; i0 < count; i0 = i0 + 1) {
|
||||
output0[i0] = FAUSTFLOAT(float(input0[i0]));
|
||||
output1[i0] = FAUSTFLOAT(float(input1[i0]));
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* @file streams-i2s-faust_copy-i2s.ino
|
||||
* @author Phil Schatzmann
|
||||
* @brief Example how to use Faust to write and process a stereo signal. The data
|
||||
* is just copied, keeping the left and right signal separate.
|
||||
* @version 0.1
|
||||
* @date 2022-04-22
|
||||
*
|
||||
* @copyright Copyright (c) 2022
|
||||
*
|
||||
*/
|
||||
|
||||
#include "AudioTools.h"
|
||||
#include "AudioTools/AudioLibs/AudioBoardStream.h"
|
||||
#include "AudioTools/AudioLibs/AudioFaust.h"
|
||||
#include "Copy.h"
|
||||
|
||||
AudioBoardStream io(AudioKitEs8388V1);
|
||||
FaustStream<mydsp> faust(io); // final output to io
|
||||
StreamCopy copier(faust, io); // copy mic to faust
|
||||
|
||||
// Arduino Setup
|
||||
void setup(void) {
|
||||
// Open Serial
|
||||
Serial.begin(115200);
|
||||
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);
|
||||
|
||||
// Setup Faust
|
||||
auto cfg = faust.defaultConfig();
|
||||
faust.begin(cfg);
|
||||
|
||||
|
||||
// start I2S
|
||||
auto cfg_i2s = io.defaultConfig(RXTX_MODE);
|
||||
cfg_i2s.copyFrom(cfg);
|
||||
io.begin(cfg_i2s);
|
||||
|
||||
}
|
||||
|
||||
// Arduino loop - copy sound to out
|
||||
void loop() {
|
||||
copier.copy();
|
||||
}
|
||||
Reference in New Issue
Block a user