123 lines
2.8 KiB
C++
123 lines
2.8 KiB
C++
/* ------------------------------------------------------------
|
|
author: "Grame"
|
|
copyright: "(c)GRAME 2009"
|
|
license: "BSD"
|
|
name: "Noise"
|
|
version: "1.1"
|
|
Code generated with Faust 2.38.16 (https://faust.grame.fr)
|
|
Compilation options: -lang cpp -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>
|
|
#include "AudioTools/AudioLibs/AudioFaustDSP.h" // used to define dsp class
|
|
|
|
#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:
|
|
|
|
FAUSTFLOAT fVslider0;
|
|
int iRec0[2];
|
|
int fSampleRate;
|
|
|
|
public:
|
|
|
|
void metadata(Meta* m) {
|
|
m->declare("author", "Grame");
|
|
m->declare("compilation_options", "-single -scal -I /Users/pschatzmann/.FaustLive-CurrentSession-2.2/Libs -I /Users/pschatzmann/.FaustLive-CurrentSession-2.2/Examples");
|
|
m->declare("compile_options", "-lang cpp -es 1 -mcd 16 -single -ftz 0 ");
|
|
m->declare("copyright", "(c)GRAME 2009");
|
|
m->declare("filename", "Noise.dsp");
|
|
m->declare("license", "BSD");
|
|
m->declare("name", "Noise");
|
|
m->declare("version", "1.1");
|
|
}
|
|
|
|
virtual int getNumInputs() {
|
|
return 0;
|
|
}
|
|
virtual int getNumOutputs() {
|
|
return 1;
|
|
}
|
|
|
|
static void classInit(int sample_rate) {
|
|
}
|
|
|
|
virtual void instanceConstants(int sample_rate) {
|
|
fSampleRate = sample_rate;
|
|
}
|
|
|
|
virtual void instanceResetUserInterface() {
|
|
fVslider0 = FAUSTFLOAT(0.5f);
|
|
}
|
|
|
|
virtual void instanceClear() {
|
|
for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
|
|
iRec0[l0] = 0;
|
|
}
|
|
}
|
|
|
|
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("Noise");
|
|
ui_interface->declare(&fVslider0, "acc", "0 0 -10 0 10");
|
|
ui_interface->declare(&fVslider0, "style", "knob");
|
|
ui_interface->addVerticalSlider("Volume", &fVslider0, FAUSTFLOAT(0.5f), FAUSTFLOAT(0.0f), FAUSTFLOAT(1.0f), FAUSTFLOAT(0.100000001f));
|
|
ui_interface->closeBox();
|
|
}
|
|
|
|
virtual void compute(int count, FAUSTFLOAT** RESTRICT inputs, FAUSTFLOAT** RESTRICT outputs) {
|
|
FAUSTFLOAT* output0 = outputs[0];
|
|
float fSlow0 = (4.65661287e-10f * float(fVslider0));
|
|
for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
|
|
iRec0[0] = ((1103515245 * iRec0[1]) + 12345);
|
|
output0[i0] = FAUSTFLOAT((fSlow0 * float(iRec0[0])));
|
|
iRec0[1] = iRec0[0];
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|