10 #ifndef __freeverbdsp_H__
11 #define __freeverbdsp_H__
51 #define FAUSTFLOAT float
105 virtual void init(
int sample_rate) = 0;
229 #include <xmmintrin.h>
231 #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040)
233 #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000)
236 #define AVOIDDENORMALS
305 virtual void declare(
const char* key,
const char* value) = 0;
339 #define FAUSTFLOAT float
351 template <
typename REAL>
366 virtual void addButton(
const char* label, REAL* zone) = 0;
368 virtual void addVerticalSlider(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
369 virtual void addHorizontalSlider(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
370 virtual void addNumEntry(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
379 virtual void addSoundfile(
const char* label,
const char* filename, Soundfile** sf_zone) = 0;
383 virtual void declare(REAL* zone,
const char* key,
const char* val) {}
386 struct UI :
public UIReal<FAUSTFLOAT>
418 #ifndef FAUST_PATHBUILDER_H
419 #define FAUST_PATHBUILDER_H
444 std::string res =
"/";
450 std::replace(res.begin(), res.end(),
' ',
'_');
456 std::replace(label.begin(), label.end(),
' ',
'_');
491 #ifndef __ValueConverter__
492 #define __ValueConverter__
564 Range(
double x,
double y) : fLo(std::min<double>(x,y)), fHi(std::max<double>(x,y)) {}
565 double operator()(
double x) {
return (x<fLo) ? fLo : (x>fHi) ? fHi : x; }
575 Interpolator(
double lo,
double hi,
double v1,
double v2) : fRange(lo,hi)
579 fCoef = (v2-v1)/(hi-lo);
580 fOffset = v1 - lo*fCoef;
589 double x = fRange(v);
590 return fOffset + x*fCoef;
616 fSegment1(lo, mi, v1, vm),
617 fSegment2(mi, hi, vm, v2),
619 double operator()(
double x) {
return (x < fMid) ? fSegment1(x) : fSegment2(x); }
658 virtual void setMappingValues(
double amin,
double amid,
double amax,
double min,
double init,
double max) = 0;
681 fUI2F(umin,umax,fmin,fmax), fF2UI(fmin,fmax,umin,umax)
686 virtual double ui2faust(
double x) {
return fUI2F(x); }
687 virtual double faust2ui(
double x) {
return fF2UI(x); }
705 fUI2F(amin, amid, amax, min, init, max), fF2UI(min, init, max, amin, amid, amax)
708 LinearValueConverter2() : fUI2F(0.,0.,0.,0.,0.,0.), fF2UI(0.,0.,0.,0.,0.,0.)
711 virtual double ui2faust(
double x) {
return fUI2F(x); }
712 virtual double faust2ui(
double x) {
return fF2UI(x); }
714 virtual void setMappingValues(
double amin,
double amid,
double amax,
double min,
double init,
double max)
736 LinearValueConverter(umin, umax, std::log(std::max<double>(DBL_MIN, fmin)), std::log(std::max<double>(DBL_MIN, fmax)))
753 LinearValueConverter(umin, umax, std::min<double>(DBL_MAX, std::exp(fmin)), std::min<double>(DBL_MAX, std::exp(fmax)))
775 AccUpConverter(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax) :
776 fA2F(amin,amid,amax,fmin,fmid,fmax),
777 fF2A(fmin,fmid,fmax,amin,amid,amax)
780 virtual double ui2faust(
double x) {
return fA2F(x); }
781 virtual double faust2ui(
double x) {
return fF2A(x); }
783 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
811 AccDownConverter(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax) :
812 fA2F(amin,amid,amax,fmax,fmid,fmin),
813 fF2A(fmin,fmid,fmax,amax,amid,amin)
816 virtual double ui2faust(
double x) {
return fA2F(x); }
817 virtual double faust2ui(
double x) {
return fF2A(x); }
819 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
847 fA2F(amin,amid,amax,fmin,fmax,fmin),
848 fF2A(fmin,fmax,amin,amax)
851 virtual double ui2faust(
double x) {
return fA2F(x); }
852 virtual double faust2ui(
double x) {
return fF2A(x); }
854 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
882 fA2F(amin,amid,amax,fmax,fmin,fmax),
883 fF2A(fmin,fmax,amin,amax)
886 virtual double ui2faust(
double x) {
return fA2F(x); }
887 virtual double faust2ui(
double x) {
return fF2A(x); }
889 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
919 virtual void setMappingValues(
int curve,
double amin,
double amid,
double amax,
double min,
double init,
double max) {}
961 std::vector<UpdatableValueConverter*> fValueConverters;
968 assert(curve >= 0 && curve <= 3);
969 fValueConverters.push_back(
new AccUpConverter(amin, amid, amax, min, init, max));
970 fValueConverters.push_back(
new AccDownConverter(amin, amid, amax, min, init, max));
977 std::vector<UpdatableValueConverter*>::iterator it;
978 for (it = fValueConverters.begin(); it != fValueConverters.end(); it++) {
982 void update(
double v)
const {
if (fValueConverters[fCurve]->
getActive()) *
fZone = fValueConverters[fCurve]->ui2faust(v); }
984 void setMappingValues(
int curve,
double amin,
double amid,
double amax,
double min,
double init,
double max)
986 fValueConverters[curve]->setMappingValues(amin, amid, amax, min, init, max);
992 fValueConverters[fCurve]->getMappingValues(amin, amid, amax);
997 std::vector<UpdatableValueConverter*>::iterator it;
998 for (it = fValueConverters.begin(); it != fValueConverters.end(); it++) {
999 (*it)->setActive(on_off);
1022 return (fZone !=
nullptr) ? int(fInterpolator(*fZone)) : 127;
1041 std::vector<std::string>
fPaths;
1042 std::vector<std::string>
fLabels;
1043 std::map<std::string, int>
fPathMap;
1046 std::vector<FAUSTFLOAT*>
fZone;
1047 std::vector<FAUSTFLOAT>
fInit;
1048 std::vector<FAUSTFLOAT>
fMin;
1049 std::vector<FAUSTFLOAT>
fMax;
1050 std::vector<FAUSTFLOAT>
fStep;
1052 std::vector<std::map<std::string, std::string> >
fMetaData;
1053 std::vector<ZoneControl*>
fAcc[3];
1054 std::vector<ZoneControl*>
fGyr[3];
1085 fZone.push_back(zone);
1086 fInit.push_back(init);
1087 fMin.push_back(min);
1088 fMax.push_back(max);
1089 fStep.push_back(step);
1106 std::cerr <<
"warning : 'acc' and 'gyr' metadata used for the same " << label <<
" parameter !!\n";
1113 double amin, amid, amax;
1114 iss >> axe >> curve >> amin >> amid >> amax;
1116 if ((0 <= axe) && (axe < 3) &&
1117 (0 <= curve) && (curve < 4) &&
1118 (amin < amax) && (amin <= amid) && (amid <= amax))
1122 std::cerr <<
"incorrect acc metadata : " <<
fCurrentAcc << std::endl;
1131 double amin, amid, amax;
1132 iss >> axe >> curve >> amin >> amid >> amax;
1134 if ((0 <= axe) && (axe < 3) &&
1135 (0 <= curve) && (curve < 4) &&
1136 (amin < amax) && (amin <= amid) && (amid <= amax))
1140 std::cerr <<
"incorrect gyr metadata : " <<
fCurrentGyr << std::endl;
1162 std::cerr <<
"incorrect screencolor metadata : " <<
fCurrentColor << std::endl;
1174 for (
size_t i = 0; i < table[val].size(); i++) {
1175 if (zone == table[val][i]->getZone())
return int(i);
1180 void setConverter(std::vector<ZoneControl*>* table,
int p,
int val,
int curve,
double amin,
double amid,
double amax)
1187 if (id1 != -1) table[0][id1]->setActive(
false);
1188 if (id2 != -1) table[1][id2]->setActive(
false);
1189 if (id3 != -1) table[2][id3]->setActive(
false);
1197 table[val][id4]->setMappingValues(curve, amin, amid, amax,
fMin[p],
fInit[p],
fMax[p]);
1198 table[val][id4]->setActive(
true);
1207 void getConverter(std::vector<ZoneControl*>* table,
int p,
int& val,
int& curve,
double& amin,
double& amid,
double& amax)
1215 curve = table[val][id1]->getCurve();
1216 table[val][id1]->getMappingValues(amin, amid, amax);
1217 }
else if (id2 != -1) {
1219 curve = table[val][id2]->getCurve();
1220 table[val][id2]->getMappingValues(amin, amid, amax);
1221 }
else if (id3 != -1) {
1223 curve = table[val][id3]->getCurve();
1224 table[val][id3]->getMappingValues(amin, amid, amax);
1244 for (
int i = 0; i < 3; i++) {
1245 for (
auto& it :
fAcc[i])
delete it;
1246 for (
auto& it :
fGyr[i])
delete it;
1301 virtual void addSoundfile(
const char* label,
const char* filename, Soundfile** sf_zone) {}
1310 if (strcmp(key,
"scale") == 0) {
1311 if (strcmp(val,
"log") == 0) {
1313 }
else if (strcmp(val,
"exp") == 0) {
1318 }
else if (strcmp(key,
"unit") == 0) {
1320 }
else if (strcmp(key,
"acc") == 0) {
1322 }
else if (strcmp(key,
"gyr") == 0) {
1324 }
else if (strcmp(key,
"screencolor") == 0) {
1326 }
else if (strcmp(key,
"tooltip") == 0) {
1331 virtual void declare(
const char* key,
const char* val)
1352 std::map<const char*, const char*> res;
1353 std::map<std::string, std::string> metadata =
fMetaData[p];
1354 for (
auto it : metadata) {
1355 res[it.first.c_str()] = it.second.c_str();
1423 for (
size_t i = 0; i <
fAcc[acc].size(); i++) {
1424 fAcc[acc][i]->update(value);
1471 void getAccConverter(
int p,
int& acc,
int& curve,
double& amin,
double& amid,
double& amax)
1487 void getGyrConverter(
int p,
int& gyr,
int& curve,
double& amin,
double& amid,
double& amax)
1501 for (
size_t i = 0; i <
fGyr[gyr].size(); i++) {
1502 fGyr[gyr][i]->update(value);
1515 return (acc >= 0 && acc < 3) ? int(
fAcc[acc].size()) : 0;
1527 return (gyr >= 0 && gyr < 3) ? int(
fGyr[gyr].size()) : 0;
1538 return (r<<16) | (g<<8) | b;
1558 #define FAUSTFLOAT float
1561 #include <algorithm>
1567 #define FAUSTCLASS freeverbdsp
1571 #define exp10f __exp10f
1572 #define exp10 __exp10
1673 m->
declare(
"author",
"Romain Michon");
1674 m->
declare(
"delays.lib/name",
"Faust Delay Library");
1675 m->
declare(
"delays.lib/version",
"0.1");
1676 m->
declare(
"description",
"Freeverb implementation in Faust, from the Faust Library's dm.freeverb_demo in demos.lib");
1677 m->
declare(
"filename",
"freeverbdsp.dsp");
1678 m->
declare(
"filters.lib/allpass_comb:author",
"Julius O. Smith III");
1679 m->
declare(
"filters.lib/allpass_comb:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1680 m->
declare(
"filters.lib/allpass_comb:license",
"MIT-style STK-4.3 license");
1681 m->
declare(
"filters.lib/lowpass0_highpass1",
"MIT-style STK-4.3 license");
1682 m->
declare(
"filters.lib/name",
"Faust Filters Library");
1683 m->
declare(
"license",
"LGPL");
1684 m->
declare(
"maths.lib/author",
"GRAME");
1685 m->
declare(
"maths.lib/copyright",
"GRAME");
1686 m->
declare(
"maths.lib/license",
"LGPL with exception");
1687 m->
declare(
"maths.lib/name",
"Faust Math Library");
1688 m->
declare(
"maths.lib/version",
"2.3");
1689 m->
declare(
"name",
"freeverb");
1690 m->
declare(
"platform.lib/name",
"Generic Platform Library");
1691 m->
declare(
"platform.lib/version",
"0.1");
1692 m->
declare(
"reverbs.lib/name",
"Faust Reverb Library");
1693 m->
declare(
"reverbs.lib/version",
"0.0");
1705 switch ((channel)) {
1723 switch ((channel)) {
1744 fSampleRate = sample_rate;
1745 fConst0 = std::min<float>(192000.0f, std::max<float>(1.0f,
float(fSampleRate)));
1746 fConst1 = (12348.0f / fConst0);
1747 fConst2 = (17640.0f / fConst0);
1748 iConst3 = int((0.0253061224f * fConst0));
1749 iConst4 = int((0.0269387756f * fConst0));
1750 iConst5 = int((0.0289569162f * fConst0));
1751 iConst6 = int((0.0307482984f * fConst0));
1752 iConst7 = int((0.0322448984f * fConst0));
1753 iConst8 = int((0.033809524f * fConst0));
1754 iConst9 = int((0.0353061222f * fConst0));
1755 iConst10 = int((0.0366666652f * fConst0));
1756 iConst11 = int((0.0126077095f * fConst0));
1757 iConst12 = std::min<int>(1024, std::max<int>(0, (iConst11 + -1)));
1758 iConst13 = int((0.00999999978f * fConst0));
1759 iConst14 = std::min<int>(1024, std::max<int>(0, (iConst13 + -1)));
1760 iConst15 = int((0.00773242628f * fConst0));
1761 iConst16 = std::min<int>(1024, std::max<int>(0, (iConst15 + -1)));
1762 iConst17 = int((0.00510204071f * fConst0));
1763 iConst18 = std::min<int>(1024, std::max<int>(0, (iConst17 + -1)));
1764 fConst19 = (0.00104308384f * fConst0);
1768 fVslider0 =
FAUSTFLOAT(0.10000000000000001f);
1770 fVslider2 =
FAUSTFLOAT(0.10000000000000001f);
1775 for (
int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
1779 for (
int l1 = 0; (l1 < 8192); l1 = (l1 + 1)) {
1782 for (
int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
1785 for (
int l3 = 0; (l3 < 2); l3 = (l3 + 1)) {
1788 for (
int l4 = 0; (l4 < 8192); l4 = (l4 + 1)) {
1791 for (
int l5 = 0; (l5 < 2); l5 = (l5 + 1)) {
1794 for (
int l6 = 0; (l6 < 2); l6 = (l6 + 1)) {
1797 for (
int l7 = 0; (l7 < 8192); l7 = (l7 + 1)) {
1800 for (
int l8 = 0; (l8 < 2); l8 = (l8 + 1)) {
1803 for (
int l9 = 0; (l9 < 2); l9 = (l9 + 1)) {
1806 for (
int l10 = 0; (l10 < 8192); l10 = (l10 + 1)) {
1809 for (
int l11 = 0; (l11 < 2); l11 = (l11 + 1)) {
1812 for (
int l12 = 0; (l12 < 2); l12 = (l12 + 1)) {
1815 for (
int l13 = 0; (l13 < 8192); l13 = (l13 + 1)) {
1818 for (
int l14 = 0; (l14 < 2); l14 = (l14 + 1)) {
1821 for (
int l15 = 0; (l15 < 2); l15 = (l15 + 1)) {
1824 for (
int l16 = 0; (l16 < 8192); l16 = (l16 + 1)) {
1827 for (
int l17 = 0; (l17 < 2); l17 = (l17 + 1)) {
1830 for (
int l18 = 0; (l18 < 2); l18 = (l18 + 1)) {
1833 for (
int l19 = 0; (l19 < 8192); l19 = (l19 + 1)) {
1836 for (
int l20 = 0; (l20 < 2); l20 = (l20 + 1)) {
1839 for (
int l21 = 0; (l21 < 2); l21 = (l21 + 1)) {
1842 for (
int l22 = 0; (l22 < 8192); l22 = (l22 + 1)) {
1845 for (
int l23 = 0; (l23 < 2); l23 = (l23 + 1)) {
1848 for (
int l24 = 0; (l24 < 2048); l24 = (l24 + 1)) {
1851 for (
int l25 = 0; (l25 < 2); l25 = (l25 + 1)) {
1854 for (
int l26 = 0; (l26 < 2048); l26 = (l26 + 1)) {
1857 for (
int l27 = 0; (l27 < 2); l27 = (l27 + 1)) {
1860 for (
int l28 = 0; (l28 < 2048); l28 = (l28 + 1)) {
1863 for (
int l29 = 0; (l29 < 2); l29 = (l29 + 1)) {
1866 for (
int l30 = 0; (l30 < 1024); l30 = (l30 + 1)) {
1869 for (
int l31 = 0; (l31 < 2); l31 = (l31 + 1)) {
1872 for (
int l32 = 0; (l32 < 2); l32 = (l32 + 1)) {
1875 for (
int l33 = 0; (l33 < 8192); l33 = (l33 + 1)) {
1878 for (
int l34 = 0; (l34 < 2); l34 = (l34 + 1)) {
1881 for (
int l35 = 0; (l35 < 2); l35 = (l35 + 1)) {
1884 for (
int l36 = 0; (l36 < 8192); l36 = (l36 + 1)) {
1887 for (
int l37 = 0; (l37 < 2); l37 = (l37 + 1)) {
1890 for (
int l38 = 0; (l38 < 2); l38 = (l38 + 1)) {
1893 for (
int l39 = 0; (l39 < 8192); l39 = (l39 + 1)) {
1896 for (
int l40 = 0; (l40 < 2); l40 = (l40 + 1)) {
1899 for (
int l41 = 0; (l41 < 2); l41 = (l41 + 1)) {
1902 for (
int l42 = 0; (l42 < 8192); l42 = (l42 + 1)) {
1905 for (
int l43 = 0; (l43 < 2); l43 = (l43 + 1)) {
1908 for (
int l44 = 0; (l44 < 2); l44 = (l44 + 1)) {
1911 for (
int l45 = 0; (l45 < 8192); l45 = (l45 + 1)) {
1914 for (
int l46 = 0; (l46 < 2); l46 = (l46 + 1)) {
1917 for (
int l47 = 0; (l47 < 2); l47 = (l47 + 1)) {
1920 for (
int l48 = 0; (l48 < 8192); l48 = (l48 + 1)) {
1923 for (
int l49 = 0; (l49 < 2); l49 = (l49 + 1)) {
1926 for (
int l50 = 0; (l50 < 2); l50 = (l50 + 1)) {
1929 for (
int l51 = 0; (l51 < 8192); l51 = (l51 + 1)) {
1932 for (
int l52 = 0; (l52 < 2); l52 = (l52 + 1)) {
1935 for (
int l53 = 0; (l53 < 2); l53 = (l53 + 1)) {
1938 for (
int l54 = 0; (l54 < 8192); l54 = (l54 + 1)) {
1941 for (
int l55 = 0; (l55 < 2); l55 = (l55 + 1)) {
1944 for (
int l56 = 0; (l56 < 2048); l56 = (l56 + 1)) {
1947 for (
int l57 = 0; (l57 < 2); l57 = (l57 + 1)) {
1950 for (
int l58 = 0; (l58 < 2048); l58 = (l58 + 1)) {
1953 for (
int l59 = 0; (l59 < 2); l59 = (l59 + 1)) {
1956 for (
int l60 = 0; (l60 < 2048); l60 = (l60 + 1)) {
1959 for (
int l61 = 0; (l61 < 2); l61 = (l61 + 1)) {
1962 for (
int l62 = 0; (l62 < 2048); l62 = (l62 + 1)) {
1965 for (
int l63 = 0; (l63 < 2); l63 = (l63 + 1)) {
1970 virtual void init(
int sample_rate) {
1990 ui_interface->
declare(0,
"0",
"");
1992 ui_interface->
declare(&fVslider1,
"0",
"");
1993 ui_interface->
declare(&fVslider1,
"style",
"knob");
1994 ui_interface->
declare(&fVslider1,
"tooltip",
"Somehow control the density of the reverb.");
1995 ui_interface->
addVerticalSlider(
"Damp", &fVslider1, 0.5f, 0.0f, 1.0f, 0.0250000004f);
1996 ui_interface->
declare(&fVslider0,
"1",
"");
1997 ui_interface->
declare(&fVslider0,
"style",
"knob");
1998 ui_interface->
declare(&fVslider0,
"tooltip",
"The room size between 0 and 1 with 1 for the largest room.");
1999 ui_interface->
addVerticalSlider(
"RoomSize", &fVslider0, 0.100000001f, 0.0f, 1.0f, 0.0250000004f);
2000 ui_interface->
declare(&fVslider3,
"2",
"");
2001 ui_interface->
declare(&fVslider3,
"style",
"knob");
2002 ui_interface->
declare(&fVslider3,
"tooltip",
"Spatial spread between 0 and 1 with 1 for maximum spread.");
2003 ui_interface->
addVerticalSlider(
"Stereo Spread", &fVslider3, 0.5f, 0.0f, 1.0f, 0.00999999978f);
2005 ui_interface->
declare(&fVslider2,
"1",
"");
2006 ui_interface->
declare(&fVslider2,
"tooltip",
"The amount of reverb applied to the signal between 0 and 1 with 1 for the maximum amount of reverb.");
2007 ui_interface->
addVerticalSlider(
"Wet", &fVslider2, 0.100000001f, 0.0f, 1.0f, 0.0250000004f);
2016 float fSlow0 = ((fConst1 * float(fVslider0)) + 0.699999988f);
2017 float fSlow1 = (fConst2 * float(fVslider1));
2018 float fSlow2 = (1.0f - fSlow1);
2019 float fSlow3 = float(fVslider2);
2020 float fSlow4 = (0.100000001f * fSlow3);
2021 float fSlow5 = (1.0f - fSlow3);
2022 int iSlow6 = int((fConst19 *
float(fVslider3)));
2023 int iSlow7 = (iConst3 + iSlow6);
2024 int iSlow8 = (iConst4 + iSlow6);
2025 int iSlow9 = (iConst5 + iSlow6);
2026 int iSlow10 = (iConst6 + iSlow6);
2027 int iSlow11 = (iConst7 + iSlow6);
2028 int iSlow12 = (iConst8 + iSlow6);
2029 int iSlow13 = (iConst9 + iSlow6);
2030 int iSlow14 = (iConst10 + iSlow6);
2031 int iSlow15 = (iSlow6 + -1);
2032 int iSlow16 = std::min<int>(1024, std::max<int>(0, (iConst11 + iSlow15)));
2033 int iSlow17 = std::min<int>(1024, std::max<int>(0, (iConst13 + iSlow15)));
2034 int iSlow18 = std::min<int>(1024, std::max<int>(0, (iConst15 + iSlow15)));
2035 int iSlow19 = std::min<int>(1024, std::max<int>(0, (iConst17 + iSlow15)));
2036 for (
int i = 0; (i < count); i = (i + 1)) {
2037 float fTemp0 = float(input0[i]);
2038 float fTemp1 = float(input1[i]);
2039 fRec9[0] = ((fSlow1 * fRec9[1]) + (fSlow2 * fRec8[1]));
2040 float fTemp2 = (fSlow4 * (fTemp0 + fTemp1));
2041 fVec0[(IOTA & 8191)] = ((fSlow0 * fRec9[0]) + fTemp2);
2042 fRec8[0] = fVec0[((IOTA - iConst3) & 8191)];
2043 fRec11[0] = ((fSlow1 * fRec11[1]) + (fSlow2 * fRec10[1]));
2044 fVec1[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec11[0]));
2045 fRec10[0] = fVec1[((IOTA - iConst4) & 8191)];
2046 fRec13[0] = ((fSlow1 * fRec13[1]) + (fSlow2 * fRec12[1]));
2047 fVec2[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec13[0]));
2048 fRec12[0] = fVec2[((IOTA - iConst5) & 8191)];
2049 fRec15[0] = ((fSlow1 * fRec15[1]) + (fSlow2 * fRec14[1]));
2050 fVec3[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec15[0]));
2051 fRec14[0] = fVec3[((IOTA - iConst6) & 8191)];
2052 fRec17[0] = ((fSlow1 * fRec17[1]) + (fSlow2 * fRec16[1]));
2053 fVec4[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec17[0]));
2054 fRec16[0] = fVec4[((IOTA - iConst7) & 8191)];
2055 fRec19[0] = ((fSlow1 * fRec19[1]) + (fSlow2 * fRec18[1]));
2056 fVec5[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec19[0]));
2057 fRec18[0] = fVec5[((IOTA - iConst8) & 8191)];
2058 fRec21[0] = ((fSlow1 * fRec21[1]) + (fSlow2 * fRec20[1]));
2059 fVec6[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec21[0]));
2060 fRec20[0] = fVec6[((IOTA - iConst9) & 8191)];
2061 fRec23[0] = ((fSlow1 * fRec23[1]) + (fSlow2 * fRec22[1]));
2062 fVec7[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec23[0]));
2063 fRec22[0] = fVec7[((IOTA - iConst10) & 8191)];
2064 float fTemp3 = ((((((((fRec8[0] + fRec10[0]) + fRec12[0]) + fRec14[0]) + fRec16[0]) + fRec18[0]) + fRec20[0]) + fRec22[0]) + (0.5f * fRec6[1]));
2065 fVec8[(IOTA & 2047)] = fTemp3;
2066 fRec6[0] = fVec8[((IOTA - iConst12) & 2047)];
2067 float fRec7 = (0.0f - (0.5f * fTemp3));
2068 float fTemp4 = (fRec6[1] + (fRec7 + (0.5f * fRec4[1])));
2069 fVec9[(IOTA & 2047)] = fTemp4;
2070 fRec4[0] = fVec9[((IOTA - iConst14) & 2047)];
2071 float fRec5 = (0.0f - (0.5f * fTemp4));
2072 float fTemp5 = (fRec4[1] + (fRec5 + (0.5f * fRec2[1])));
2073 fVec10[(IOTA & 2047)] = fTemp5;
2074 fRec2[0] = fVec10[((IOTA - iConst16) & 2047)];
2075 float fRec3 = (0.0f - (0.5f * fTemp5));
2076 float fTemp6 = (fRec2[1] + (fRec3 + (0.5f * fRec0[1])));
2077 fVec11[(IOTA & 1023)] = fTemp6;
2078 fRec0[0] = fVec11[((IOTA - iConst18) & 1023)];
2079 float fRec1 = (0.0f - (0.5f * fTemp6));
2080 output0[i] =
FAUSTFLOAT(((fRec1 + fRec0[1]) + (fSlow5 * fTemp0)));
2081 fRec33[0] = ((fSlow1 * fRec33[1]) + (fSlow2 * fRec32[1]));
2082 fVec12[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec33[0]));
2083 fRec32[0] = fVec12[((IOTA - iSlow7) & 8191)];
2084 fRec35[0] = ((fSlow1 * fRec35[1]) + (fSlow2 * fRec34[1]));
2085 fVec13[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec35[0]));
2086 fRec34[0] = fVec13[((IOTA - iSlow8) & 8191)];
2087 fRec37[0] = ((fSlow1 * fRec37[1]) + (fSlow2 * fRec36[1]));
2088 fVec14[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec37[0]));
2089 fRec36[0] = fVec14[((IOTA - iSlow9) & 8191)];
2090 fRec39[0] = ((fSlow1 * fRec39[1]) + (fSlow2 * fRec38[1]));
2091 fVec15[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec39[0]));
2092 fRec38[0] = fVec15[((IOTA - iSlow10) & 8191)];
2093 fRec41[0] = ((fSlow1 * fRec41[1]) + (fSlow2 * fRec40[1]));
2094 fVec16[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec41[0]));
2095 fRec40[0] = fVec16[((IOTA - iSlow11) & 8191)];
2096 fRec43[0] = ((fSlow1 * fRec43[1]) + (fSlow2 * fRec42[1]));
2097 fVec17[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec43[0]));
2098 fRec42[0] = fVec17[((IOTA - iSlow12) & 8191)];
2099 fRec45[0] = ((fSlow1 * fRec45[1]) + (fSlow2 * fRec44[1]));
2100 fVec18[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec45[0]));
2101 fRec44[0] = fVec18[((IOTA - iSlow13) & 8191)];
2102 fRec47[0] = ((fSlow1 * fRec47[1]) + (fSlow2 * fRec46[1]));
2103 fVec19[(IOTA & 8191)] = (fTemp2 + (fSlow0 * fRec47[0]));
2104 fRec46[0] = fVec19[((IOTA - iSlow14) & 8191)];
2105 float fTemp7 = ((((((((fRec32[0] + fRec34[0]) + fRec36[0]) + fRec38[0]) + fRec40[0]) + fRec42[0]) + fRec44[0]) + fRec46[0]) + (0.5f * fRec30[1]));
2106 fVec20[(IOTA & 2047)] = fTemp7;
2107 fRec30[0] = fVec20[((IOTA - iSlow16) & 2047)];
2108 float fRec31 = (0.0f - (0.5f * fTemp7));
2109 float fTemp8 = (fRec30[1] + (fRec31 + (0.5f * fRec28[1])));
2110 fVec21[(IOTA & 2047)] = fTemp8;
2111 fRec28[0] = fVec21[((IOTA - iSlow17) & 2047)];
2112 float fRec29 = (0.0f - (0.5f * fTemp8));
2113 float fTemp9 = (fRec28[1] + (fRec29 + (0.5f * fRec26[1])));
2114 fVec22[(IOTA & 2047)] = fTemp9;
2115 fRec26[0] = fVec22[((IOTA - iSlow18) & 2047)];
2116 float fRec27 = (0.0f - (0.5f * fTemp9));
2117 float fTemp10 = (fRec26[1] + (fRec27 + (0.5f * fRec24[1])));
2118 fVec23[(IOTA & 2047)] = fTemp10;
2119 fRec24[0] = fVec23[((IOTA - iSlow19) & 2047)];
2120 float fRec25 = (0.0f - (0.5f * fTemp10));
2121 output1[i] =
FAUSTFLOAT(((fRec25 + fRec24[1]) + (fSlow5 * fTemp1)));
2122 fRec9[1] = fRec9[0];
2124 fRec8[1] = fRec8[0];
2125 fRec11[1] = fRec11[0];
2126 fRec10[1] = fRec10[0];
2127 fRec13[1] = fRec13[0];
2128 fRec12[1] = fRec12[0];
2129 fRec15[1] = fRec15[0];
2130 fRec14[1] = fRec14[0];
2131 fRec17[1] = fRec17[0];
2132 fRec16[1] = fRec16[0];
2133 fRec19[1] = fRec19[0];
2134 fRec18[1] = fRec18[0];
2135 fRec21[1] = fRec21[0];
2136 fRec20[1] = fRec20[0];
2137 fRec23[1] = fRec23[0];
2138 fRec22[1] = fRec22[0];
2139 fRec6[1] = fRec6[0];
2140 fRec4[1] = fRec4[0];
2141 fRec2[1] = fRec2[0];
2142 fRec0[1] = fRec0[0];
2143 fRec33[1] = fRec33[0];
2144 fRec32[1] = fRec32[0];
2145 fRec35[1] = fRec35[0];
2146 fRec34[1] = fRec34[0];
2147 fRec37[1] = fRec37[0];
2148 fRec36[1] = fRec36[0];
2149 fRec39[1] = fRec39[0];
2150 fRec38[1] = fRec38[0];
2151 fRec41[1] = fRec41[0];
2152 fRec40[1] = fRec40[0];
2153 fRec43[1] = fRec43[0];
2154 fRec42[1] = fRec42[0];
2155 fRec45[1] = fRec45[0];
2156 fRec44[1] = fRec44[0];
2157 fRec47[1] = fRec47[0];
2158 fRec46[1] = fRec46[0];
2159 fRec30[1] = fRec30[0];
2160 fRec28[1] = fRec28[0];
2161 fRec26[1] = fRec26[0];
2162 fRec24[1] = fRec24[0];
Definition: compressordsp.h:1031
std::string fCurrentAcc
Definition: compressordsp.h:1066
std::vector< FAUSTFLOAT > fMax
Definition: compressordsp.h:1049
void getGyrConverter(int p, int &gyr, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1487
@ kExp
Definition: compressordsp.h:1038
@ kLin
Definition: compressordsp.h:1038
@ kLog
Definition: compressordsp.h:1038
const char * getMetadata(int p, const char *key)
Definition: freeverbdsp.h:1360
void propagateAcc(int acc, double value)
Definition: freeverbdsp.h:1421
int getGyrCount(int gyr)
Definition: freeverbdsp.h:1525
int getParamsCount()
Definition: freeverbdsp.h:1337
virtual void addButton(const char *label, FAUSTFLOAT *zone)
Definition: freeverbdsp.h:1262
const char * getParamLabel(int p)
Definition: freeverbdsp.h:1349
virtual void closeBox()
Definition: freeverbdsp.h:1258
void setParamRatio(int p, double r)
Definition: freeverbdsp.h:1374
FAUSTFLOAT getParamInit(int p)
Definition: freeverbdsp.h:1367
std::map< std::string, int > fPathMap
Definition: compressordsp.h:1043
int getZoneIndex(std::vector< ZoneControl * > *table, int p, int val)
Definition: freeverbdsp.h:1171
double getParamRatio(int p)
Definition: freeverbdsp.h:1373
ItemType getParamItemType(int p)
Definition: freeverbdsp.h:1409
void getAccConverter(int p, int &acc, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1471
int getParamIndex(const char *path)
Definition: freeverbdsp.h:1338
const char * getParamAddress(int p)
Definition: freeverbdsp.h:1348
std::vector< FAUSTFLOAT > fMin
Definition: compressordsp.h:1048
double value2ratio(int p, double r)
Definition: freeverbdsp.h:1376
virtual void declare(const char *key, const char *val)
Definition: freeverbdsp.h:1331
virtual void addParameter(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step, ItemType type)
Definition: freeverbdsp.h:1073
virtual void addHorizontalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1277
ItemType
Definition: compressordsp.h:1034
@ kHBargraph
Definition: compressordsp.h:1034
@ kButton
Definition: compressordsp.h:1034
@ kVBargraph
Definition: compressordsp.h:1034
@ kCheckButton
Definition: compressordsp.h:1034
@ kHSlider
Definition: compressordsp.h:1034
@ kNumEntry
Definition: compressordsp.h:1034
@ kVSlider
Definition: compressordsp.h:1034
std::vector< ZoneControl * > fGyr[3]
Definition: compressordsp.h:1054
virtual void declare(FAUSTFLOAT *zone, const char *key, const char *val)
Definition: freeverbdsp.h:1305
virtual void addCheckButton(const char *label, FAUSTFLOAT *zone)
Definition: freeverbdsp.h:1267
std::vector< std::string > fPaths
Definition: compressordsp.h:1041
std::vector< FAUSTFLOAT > fInit
Definition: compressordsp.h:1047
virtual void addVerticalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1272
void getConverter(std::vector< ZoneControl * > *table, int p, int &val, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1207
virtual void addHorizontalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: freeverbdsp.h:1289
virtual void addNumEntry(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1282
std::vector< std::map< std::string, std::string > > fMetaData
Definition: compressordsp.h:1052
std::map< const char *, const char * > getMetadata(int p)
Definition: freeverbdsp.h:1350
int fCurrentScale
Definition: compressordsp.h:1065
virtual ~APIUI()
Definition: freeverbdsp.h:1241
std::vector< std::string > fLabels
Definition: compressordsp.h:1042
int fNumParameters
Definition: compressordsp.h:1040
std::vector< ItemType > fItemType
Definition: compressordsp.h:1051
Type
Definition: compressordsp.h:1236
@ kAcc
Definition: compressordsp.h:1236
@ kNoType
Definition: compressordsp.h:1236
@ kGyr
Definition: compressordsp.h:1236
std::string fCurrentColor
Definition: compressordsp.h:1068
ZoneReader * fGreenReader
Definition: compressordsp.h:1060
std::string fCurrentTooltip
Definition: compressordsp.h:1069
ZoneReader * fRedReader
Definition: compressordsp.h:1059
void setConverter(std::vector< ZoneControl * > *table, int p, int val, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1180
int getAccCount(int acc)
Definition: freeverbdsp.h:1513
void propagateGyr(int gyr, double value)
Definition: freeverbdsp.h:1499
virtual void openVerticalBox(const char *label)
Definition: freeverbdsp.h:1257
std::string fCurrentGyr
Definition: compressordsp.h:1067
void setParamValue(int p, FAUSTFLOAT v)
Definition: freeverbdsp.h:1371
ZoneReader * fBlueReader
Definition: compressordsp.h:1061
FAUSTFLOAT getParamValue(int p)
Definition: freeverbdsp.h:1370
virtual void openHorizontalBox(const char *label)
Definition: freeverbdsp.h:1256
std::map< std::string, std::string > fCurrentMetadata
Definition: compressordsp.h:1070
void setGyrConverter(int p, int gyr, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1455
std::string fCurrentUnit
Definition: compressordsp.h:1064
std::vector< ValueConverter * > fConversion
Definition: compressordsp.h:1045
APIUI()
Definition: freeverbdsp.h:1238
std::vector< ZoneControl * > fAcc[3]
Definition: compressordsp.h:1053
FAUSTFLOAT getParamStep(int p)
Definition: freeverbdsp.h:1366
virtual void addVerticalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: freeverbdsp.h:1294
std::map< std::string, int > fLabelMap
Definition: compressordsp.h:1044
virtual void openTabBox(const char *label)
Definition: freeverbdsp.h:1255
double ratio2value(int p, double r)
Definition: freeverbdsp.h:1377
FAUSTFLOAT getParamMin(int p)
Definition: freeverbdsp.h:1364
std::vector< FAUSTFLOAT > fStep
Definition: compressordsp.h:1050
bool fHasScreenControl
Definition: compressordsp.h:1058
std::vector< FAUSTFLOAT * > fZone
Definition: compressordsp.h:1046
FAUSTFLOAT * getParamZone(int p)
Definition: freeverbdsp.h:1369
int getScreenColor()
Definition: freeverbdsp.h:1532
FAUSTFLOAT getParamMax(int p)
Definition: freeverbdsp.h:1365
Type getParamType(int p)
Definition: freeverbdsp.h:1386
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)
Definition: freeverbdsp.h:1301
void setAccConverter(int p, int acc, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1439
Definition: compressordsp.h:802
AccDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:811
virtual double faust2ui(double x)
Definition: freeverbdsp.h:817
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:826
virtual double ui2faust(double x)
Definition: freeverbdsp.h:816
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:819
Definition: compressordsp.h:872
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:896
virtual double faust2ui(double x)
Definition: freeverbdsp.h:887
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:889
virtual double ui2faust(double x)
Definition: freeverbdsp.h:886
AccDownUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:881
Definition: compressordsp.h:766
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:783
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:790
virtual double faust2ui(double x)
Definition: freeverbdsp.h:781
AccUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:775
virtual double ui2faust(double x)
Definition: freeverbdsp.h:780
Definition: compressordsp.h:837
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:861
AccUpDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:846
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:854
virtual double faust2ui(double x)
Definition: freeverbdsp.h:852
virtual double ui2faust(double x)
Definition: freeverbdsp.h:851
Definition: compressordsp.h:935
ConverterZoneControl(FAUSTFLOAT *zone, ValueConverter *converter)
Definition: freeverbdsp.h:943
ValueConverter * fValueConverter
Definition: compressordsp.h:939
virtual void update(double v) const
Definition: freeverbdsp.h:946
ValueConverter * getConverter()
Definition: freeverbdsp.h:948
virtual ~ConverterZoneControl()
Definition: freeverbdsp.h:944
Definition: compressordsp.h:957
void setActive(bool on_off)
Definition: freeverbdsp.h:995
void update(double v) const
Definition: freeverbdsp.h:982
void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:984
void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:990
virtual ~CurveZoneControl()
Definition: freeverbdsp.h:975
CurveZoneControl(FAUSTFLOAT *zone, int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:966
int getCurve()
Definition: freeverbdsp.h:1003
Definition: compressordsp.h:748
ExpValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:752
virtual double ui2faust(double x)
Definition: freeverbdsp.h:756
virtual double faust2ui(double x)
Definition: freeverbdsp.h:757
Definition: compressordsp.h:605
double operator()(double x)
Definition: freeverbdsp.h:619
Interpolator3pt(double lo, double mi, double hi, double v1, double vm, double v2)
Definition: freeverbdsp.h:615
void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:621
Definition: compressordsp.h:553
void getLowHigh(double &amin, double &amax)
Definition: freeverbdsp.h:593
Interpolator(double lo, double hi, double v1, double v2)
Definition: freeverbdsp.h:575
double operator()(double v)
Definition: compressordsp.h:587
Definition: compressordsp.h:695
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:720
LinearValueConverter2(double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:704
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:714
virtual double faust2ui(double x)
Definition: freeverbdsp.h:712
LinearValueConverter2()
Definition: freeverbdsp.h:708
virtual double ui2faust(double x)
Definition: freeverbdsp.h:711
Definition: compressordsp.h:671
virtual double faust2ui(double x)
Definition: freeverbdsp.h:687
LinearValueConverter()
Definition: freeverbdsp.h:684
virtual double ui2faust(double x)
Definition: freeverbdsp.h:686
LinearValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:680
Definition: compressordsp.h:731
virtual double ui2faust(double x)
Definition: freeverbdsp.h:739
LogValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:735
virtual double faust2ui(double x)
Definition: freeverbdsp.h:740
Definition: compressordsp.h:431
PathBuilder()
Definition: freeverbdsp.h:439
std::vector< std::string > fControlsLevel
Definition: compressordsp.h:435
void pushLabel(const std::string &label)
Definition: freeverbdsp.h:460
std::string buildLabel(std::string label)
Definition: freeverbdsp.h:454
void popLabel()
Definition: freeverbdsp.h:461
virtual ~PathBuilder()
Definition: freeverbdsp.h:440
std::string buildPath(const std::string &label)
Definition: freeverbdsp.h:442
Definition: compressordsp.h:645
bool getActive()
Definition: freeverbdsp.h:662
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)=0
virtual ~UpdatableValueConverter()
Definition: freeverbdsp.h:655
UpdatableValueConverter()
Definition: freeverbdsp.h:653
virtual void getMappingValues(double &amin, double &amid, double &amax)=0
void setActive(bool on_off)
Definition: freeverbdsp.h:661
bool fActive
Definition: compressordsp.h:649
Definition: compressordsp.h:632
virtual ~ValueConverter()
Definition: freeverbdsp.h:636
virtual double ui2faust(double x)=0
virtual double faust2ui(double x)=0
Definition: compressordsp.h:906
virtual int getCurve()
Definition: freeverbdsp.h:927
ZoneControl(FAUSTFLOAT *zone)
Definition: freeverbdsp.h:914
virtual void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:919
virtual bool getActive()
Definition: freeverbdsp.h:925
FAUSTFLOAT * fZone
Definition: compressordsp.h:910
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:920
virtual ~ZoneControl()
Definition: freeverbdsp.h:915
virtual void update(double v) const
Definition: freeverbdsp.h:917
virtual void setActive(bool on_off)
Definition: freeverbdsp.h:924
FAUSTFLOAT * getZone()
Definition: freeverbdsp.h:922
Definition: compressordsp.h:1007
int getValue()
Definition: freeverbdsp.h:1020
ZoneReader(FAUSTFLOAT *zone, double lo, double hi)
Definition: freeverbdsp.h:1016
virtual ~ZoneReader()
Definition: freeverbdsp.h:1018
Definition: compressordsp.h:168
virtual void init(int sample_rate)
Definition: freeverbdsp.h:183
virtual void buildUserInterface(UI *ui_interface)
Definition: freeverbdsp.h:181
virtual void instanceConstants(int sample_rate)
Definition: freeverbdsp.h:185
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:191
decorator_dsp(dsp *dsp=nullptr)
Definition: freeverbdsp.h:176
virtual void instanceResetUserInterface()
Definition: freeverbdsp.h:186
virtual int getNumOutputs()
Definition: freeverbdsp.h:180
virtual void compute(double date_usec, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:192
virtual void instanceInit(int sample_rate)
Definition: freeverbdsp.h:184
virtual decorator_dsp * clone()
Definition: freeverbdsp.h:188
virtual int getSampleRate()
Definition: freeverbdsp.h:182
dsp * fDSP
Definition: compressordsp.h:172
virtual void instanceClear()
Definition: freeverbdsp.h:187
virtual ~decorator_dsp()
Definition: freeverbdsp.h:177
virtual int getNumInputs()
Definition: freeverbdsp.h:179
virtual void metadata(Meta *m)
Definition: freeverbdsp.h:189
Definition: compressordsp.h:200
virtual std::vector< std::string > getLibraryList()=0
virtual dsp_memory_manager * getMemoryManager()=0
virtual dsp * createDSPInstance()=0
virtual std::vector< std::string > getIncludePathnames()=0
virtual ~dsp_factory()
Definition: freeverbdsp.h:205
virtual std::string getName()=0
virtual std::string getSHAKey()=0
virtual void setMemoryManager(dsp_memory_manager *manager)=0
virtual std::string getCompileOptions()=0
virtual std::string getDSPCode()=0
Definition: compressordsp.h:74
virtual int getNumOutputs()=0
virtual void init(int sample_rate)=0
virtual int getNumInputs()=0
virtual void instanceClear()=0
virtual void instanceConstants(int sample_rate)=0
virtual void instanceResetUserInterface()=0
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)=0
virtual void compute(double, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:160
virtual void instanceInit(int sample_rate)=0
virtual ~dsp()
Definition: freeverbdsp.h:79
dsp()
Definition: freeverbdsp.h:78
virtual void buildUserInterface(UI *ui_interface)=0
virtual int getSampleRate()=0
virtual void metadata(Meta *m)=0
Definition: freeverbdsp.h:1575
virtual void instanceClear()
Definition: freeverbdsp.h:1774
virtual void instanceResetUserInterface()
Definition: freeverbdsp.h:1767
virtual int getNumInputs()
Definition: freeverbdsp.h:1697
static void classInit(int sample_rate)
Definition: freeverbdsp.h:1740
virtual void init(int sample_rate)
Definition: freeverbdsp.h:1970
virtual void instanceInit(int sample_rate)
Definition: freeverbdsp.h:1974
virtual int getOutputRate(int channel)
Definition: freeverbdsp.h:1721
virtual int getInputRate(int channel)
Definition: freeverbdsp.h:1703
virtual void instanceConstants(int sample_rate)
Definition: freeverbdsp.h:1743
virtual int getNumOutputs()
Definition: freeverbdsp.h:1700
void metadata(Meta *m)
Definition: freeverbdsp.h:1672
virtual void buildUserInterface(UI *ui_interface)
Definition: freeverbdsp.h:1988
virtual int getSampleRate()
Definition: freeverbdsp.h:1984
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:2011
virtual freeverbdsp * clone()
Definition: freeverbdsp.h:1980
#define FAUSTFLOAT
Definition: freeverbdsp.h:51
Definition: compressordsp.h:387
virtual ~UI()
Definition: freeverbdsp.h:389
UI()
Definition: freeverbdsp.h:388
Definition: compressordsp.h:353
virtual void openVerticalBox(const char *label)=0
virtual void addNumEntry(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)=0
virtual void addHorizontalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
virtual void addHorizontalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
virtual void addCheckButton(const char *label, REAL *zone)=0
virtual void addVerticalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
UIReal()
Definition: freeverbdsp.h:354
virtual void declare(REAL *zone, const char *key, const char *val)
Definition: freeverbdsp.h:383
virtual void addButton(const char *label, REAL *zone)=0
virtual void openTabBox(const char *label)=0
virtual void closeBox()=0
virtual ~UIReal()
Definition: freeverbdsp.h:355
virtual void openHorizontalBox(const char *label)=0
virtual void addVerticalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
Definition: compressordsp.h:61
virtual ~dsp_memory_manager()
Definition: freeverbdsp.h:63
virtual void * allocate(size_t size)=0
virtual void destroy(void *ptr)=0