Go to the documentation of this file.
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(),
' ',
'_');
465 #endif // FAUST_PATHBUILDER_H
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];
virtual ~ZoneReader()
Definition: freeverbdsp.h:1018
std::vector< ZoneControl * > fGyr[3]
Definition: compressordsp.h:1054
AccUpDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:846
Definition: compressordsp.h:766
FAUSTFLOAT getParamInit(int p)
Definition: freeverbdsp.h:1367
virtual void * allocate(size_t size)=0
virtual bool getActive()
Definition: freeverbdsp.h:925
virtual int getInputRate(int channel)
Definition: freeverbdsp.h:1703
void pushLabel(const std::string &label)
Definition: freeverbdsp.h:460
virtual ~ValueConverter()
Definition: freeverbdsp.h:636
virtual void buildUserInterface(UI *ui_interface)
Definition: freeverbdsp.h:181
virtual void compute(double date_usec, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:192
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)=0
virtual int getNumOutputs()
Definition: freeverbdsp.h:1700
Definition: compressordsp.h:553
void setAccConverter(int p, int acc, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1439
virtual ~UIReal()
Definition: freeverbdsp.h:355
Interpolator(double lo, double hi, double v1, double v2)
Definition: freeverbdsp.h:575
void propagateGyr(int gyr, double value)
Definition: freeverbdsp.h:1499
Type
Definition: compressordsp.h:1236
Definition: compressordsp.h:605
@ kAcc
Definition: compressordsp.h:1236
virtual std::string getDSPCode()=0
@ kHBargraph
Definition: compressordsp.h:1034
std::vector< std::string > fLabels
Definition: compressordsp.h:1042
LinearValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:680
virtual void openHorizontalBox(const char *label)
Definition: freeverbdsp.h:1256
std::string fCurrentColor
Definition: compressordsp.h:1068
virtual void instanceClear()
Definition: freeverbdsp.h:187
int getParamIndex(const char *path)
Definition: freeverbdsp.h:1338
ZoneReader * fRedReader
Definition: compressordsp.h:1059
Definition: compressordsp.h:645
virtual ~UI()
Definition: freeverbdsp.h:389
virtual void instanceResetUserInterface()=0
decorator_dsp(dsp *dsp=nullptr)
Definition: freeverbdsp.h:176
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:714
virtual void instanceResetUserInterface()
Definition: freeverbdsp.h:186
virtual double ui2faust(double x)
Definition: freeverbdsp.h:851
ZoneControl(FAUSTFLOAT *zone)
Definition: freeverbdsp.h:914
LinearValueConverter()
Definition: freeverbdsp.h:684
virtual int getOutputRate(int channel)
Definition: freeverbdsp.h:1721
void getGyrConverter(int p, int &gyr, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1487
virtual void compute(double, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:160
virtual void init(int sample_rate)
Definition: freeverbdsp.h:183
virtual void instanceInit(int sample_rate)
Definition: freeverbdsp.h:1974
int getZoneIndex(std::vector< ZoneControl * > *table, int p, int val)
Definition: freeverbdsp.h:1171
virtual ~APIUI()
Definition: freeverbdsp.h:1241
Definition: compressordsp.h:837
UI()
Definition: freeverbdsp.h:388
int getScreenColor()
Definition: freeverbdsp.h:1532
virtual void addNumEntry(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1282
virtual void addParameter(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step, ItemType type)
Definition: freeverbdsp.h:1073
std::vector< std::map< std::string, std::string > > fMetaData
Definition: compressordsp.h:1052
dsp * fDSP
Definition: compressordsp.h:172
Definition: compressordsp.h:695
virtual double ui2faust(double x)
Definition: freeverbdsp.h:739
ItemType
Definition: compressordsp.h:1034
virtual double faust2ui(double x)=0
virtual void addVerticalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
virtual void openTabBox(const char *label)=0
@ kExp
Definition: compressordsp.h:1038
ZoneReader(FAUSTFLOAT *zone, double lo, double hi)
Definition: freeverbdsp.h:1016
virtual decorator_dsp * clone()
Definition: freeverbdsp.h:188
virtual void declare(REAL *zone, const char *key, const char *val)
Definition: freeverbdsp.h:383
AccDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:811
std::vector< ValueConverter * > fConversion
Definition: compressordsp.h:1045
std::vector< std::string > fPaths
Definition: compressordsp.h:1041
virtual double faust2ui(double x)
Definition: freeverbdsp.h:887
#define FAUSTFLOAT
Definition: freeverbdsp.h:51
virtual void getMappingValues(double &amin, double &amid, double &amax)=0
virtual ~CurveZoneControl()
Definition: freeverbdsp.h:975
FAUSTFLOAT * getZone()
Definition: freeverbdsp.h:922
virtual void addHorizontalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:621
ZoneReader * fGreenReader
Definition: compressordsp.h:1060
virtual void setMemoryManager(dsp_memory_manager *manager)=0
virtual void buildUserInterface(UI *ui_interface)=0
virtual void addCheckButton(const char *label, FAUSTFLOAT *zone)
Definition: freeverbdsp.h:1267
Definition: compressordsp.h:200
virtual std::string getCompileOptions()=0
virtual double faust2ui(double x)
Definition: freeverbdsp.h:687
virtual double faust2ui(double x)
Definition: freeverbdsp.h:740
std::vector< ZoneControl * > fAcc[3]
Definition: compressordsp.h:1053
virtual void closeBox()=0
std::vector< std::string > fControlsLevel
Definition: compressordsp.h:435
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:756
virtual void instanceConstants(int sample_rate)=0
int getGyrCount(int gyr)
Definition: freeverbdsp.h:1525
void setConverter(std::vector< ZoneControl * > *table, int p, int val, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1180
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:896
virtual freeverbdsp * clone()
Definition: freeverbdsp.h:1980
LinearValueConverter2()
Definition: freeverbdsp.h:708
virtual int getNumInputs()=0
std::map< std::string, int > fLabelMap
Definition: compressordsp.h:1044
virtual double ui2faust(double x)
Definition: freeverbdsp.h:711
virtual double faust2ui(double x)
Definition: freeverbdsp.h:781
virtual void openVerticalBox(const char *label)
Definition: freeverbdsp.h:1257
void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:990
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:826
virtual void closeBox()
Definition: freeverbdsp.h:1258
virtual double faust2ui(double x)
Definition: freeverbdsp.h:817
virtual void init(int sample_rate)
Definition: freeverbdsp.h:1970
std::vector< FAUSTFLOAT > fStep
Definition: compressordsp.h:1050
@ kVSlider
Definition: compressordsp.h:1034
@ kButton
Definition: compressordsp.h:1034
virtual ~ConverterZoneControl()
Definition: freeverbdsp.h:944
ZoneReader * fBlueReader
Definition: compressordsp.h:1061
virtual void addNumEntry(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
void popLabel()
Definition: freeverbdsp.h:461
virtual ~UpdatableValueConverter()
Definition: freeverbdsp.h:655
virtual std::string getSHAKey()=0
Definition: compressordsp.h:168
void setActive(bool on_off)
Definition: freeverbdsp.h:995
virtual std::vector< std::string > getIncludePathnames()=0
virtual int getSampleRate()
Definition: freeverbdsp.h:1984
std::map< const char *, const char * > getMetadata(int p)
Definition: freeverbdsp.h:1350
const char * getParamAddress(int p)
Definition: freeverbdsp.h:1348
virtual void setActive(bool on_off)
Definition: freeverbdsp.h:924
Definition: compressordsp.h:1007
virtual double ui2faust(double x)=0
int fNumParameters
Definition: compressordsp.h:1040
std::string fCurrentTooltip
Definition: compressordsp.h:1069
virtual std::string getName()=0
virtual int getCurve()
Definition: freeverbdsp.h:927
virtual dsp_memory_manager * getMemoryManager()=0
Definition: freeverbdsp.h:1575
void getLowHigh(double &amin, double &amax)
Definition: freeverbdsp.h:593
@ kGyr
Definition: compressordsp.h:1236
FAUSTFLOAT getParamValue(int p)
Definition: freeverbdsp.h:1370
virtual void destroy(void *ptr)=0
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)
Definition: freeverbdsp.h:1301
double operator()(double x)
Definition: freeverbdsp.h:619
virtual void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:919
virtual void addCheckButton(const char *label, REAL *zone)=0
void setParamValue(int p, FAUSTFLOAT v)
Definition: freeverbdsp.h:1371
std::vector< FAUSTFLOAT * > fZone
Definition: compressordsp.h:1046
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:783
LogValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:735
virtual double faust2ui(double x)
Definition: freeverbdsp.h:712
virtual void instanceInit(int sample_rate)=0
@ kLog
Definition: compressordsp.h:1038
virtual void instanceResetUserInterface()
Definition: freeverbdsp.h:1767
virtual void instanceClear()
Definition: freeverbdsp.h:1774
ExpValueConverter(double umin, double umax, double fmin, double fmax)
Definition: freeverbdsp.h:752
int fCurrentScale
Definition: compressordsp.h:1065
virtual int getNumInputs()
Definition: freeverbdsp.h:179
Definition: compressordsp.h:1031
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)=0
virtual double faust2ui(double x)
Definition: freeverbdsp.h:757
FAUSTFLOAT * getParamZone(int p)
Definition: freeverbdsp.h:1369
void update(double v) const
Definition: freeverbdsp.h:982
Definition: compressordsp.h:802
virtual int getSampleRate()
Definition: freeverbdsp.h:182
virtual ~dsp_factory()
Definition: freeverbdsp.h:205
virtual int getNumInputs()
Definition: freeverbdsp.h:1697
virtual void update(double v) const
Definition: freeverbdsp.h:917
virtual double faust2ui(double x)
Definition: freeverbdsp.h:852
Definition: compressordsp.h:957
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:854
int getAccCount(int acc)
Definition: freeverbdsp.h:1513
Definition: compressordsp.h:748
std::map< std::string, int > fPathMap
Definition: compressordsp.h:1043
std::string buildPath(const std::string &label)
Definition: freeverbdsp.h:442
Definition: compressordsp.h:74
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:920
virtual dsp * createDSPInstance()=0
dsp()
Definition: freeverbdsp.h:78
virtual void openVerticalBox(const char *label)=0
FAUSTFLOAT getParamMin(int p)
Definition: freeverbdsp.h:1364
Definition: compressordsp.h:906
AccDownUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:881
ValueConverter * getConverter()
Definition: freeverbdsp.h:948
FAUSTFLOAT getParamStep(int p)
Definition: freeverbdsp.h:1366
static void classInit(int sample_rate)
Definition: freeverbdsp.h:1740
const char * getParamLabel(int p)
Definition: freeverbdsp.h:1349
std::vector< ItemType > fItemType
Definition: compressordsp.h:1051
UIReal()
Definition: freeverbdsp.h:354
double ratio2value(int p, double r)
Definition: freeverbdsp.h:1377
Definition: compressordsp.h:872
void getConverter(std::vector< ZoneControl * > *table, int p, int &val, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1207
virtual int getNumOutputs()=0
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:2011
virtual ~dsp_memory_manager()
Definition: freeverbdsp.h:63
bool fActive
Definition: compressordsp.h:649
FAUSTFLOAT * fZone
Definition: compressordsp.h:910
virtual void buildUserInterface(UI *ui_interface)
Definition: freeverbdsp.h:1988
ValueConverter * fValueConverter
Definition: compressordsp.h:939
PathBuilder()
Definition: freeverbdsp.h:439
virtual void instanceConstants(int sample_rate)
Definition: freeverbdsp.h:185
void setGyrConverter(int p, int gyr, int curve, double amin, double amid, double amax)
Definition: freeverbdsp.h:1455
void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:984
virtual ~PathBuilder()
Definition: freeverbdsp.h:440
const char * getMetadata(int p, const char *key)
Definition: freeverbdsp.h:1360
virtual std::vector< std::string > getLibraryList()=0
Definition: compressordsp.h:387
Definition: compressordsp.h:671
virtual void addButton(const char *label, REAL *zone)=0
virtual void metadata(Meta *m)
Definition: freeverbdsp.h:189
FAUSTFLOAT getParamMax(int p)
Definition: freeverbdsp.h:1365
virtual void addVerticalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
virtual double ui2faust(double x)
Definition: freeverbdsp.h:780
ConverterZoneControl(FAUSTFLOAT *zone, ValueConverter *converter)
Definition: freeverbdsp.h:943
virtual ~dsp()
Definition: freeverbdsp.h:79
std::vector< FAUSTFLOAT > fMin
Definition: compressordsp.h:1048
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:720
UpdatableValueConverter()
Definition: freeverbdsp.h:653
void getAccConverter(int p, int &acc, int &curve, double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:1471
virtual void addVerticalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1272
virtual void addHorizontalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
AccUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:775
double value2ratio(int p, double r)
Definition: freeverbdsp.h:1376
virtual double ui2faust(double x)
Definition: freeverbdsp.h:886
std::string fCurrentGyr
Definition: compressordsp.h:1067
virtual void instanceClear()=0
std::string fCurrentAcc
Definition: compressordsp.h:1066
@ kNoType
Definition: compressordsp.h:1236
virtual void openHorizontalBox(const char *label)=0
@ kCheckButton
Definition: compressordsp.h:1034
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: freeverbdsp.h:819
virtual void addHorizontalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: freeverbdsp.h:1277
virtual double ui2faust(double x)
Definition: freeverbdsp.h:816
virtual double ui2faust(double x)
Definition: freeverbdsp.h:686
void setParamRatio(int p, double r)
Definition: freeverbdsp.h:1374
LinearValueConverter2(double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:704
virtual ~ZoneControl()
Definition: freeverbdsp.h:915
virtual void metadata(Meta *m)=0
double getParamRatio(int p)
Definition: freeverbdsp.h:1373
Definition: compressordsp.h:935
Definition: compressordsp.h:632
virtual int getNumOutputs()
Definition: freeverbdsp.h:180
std::vector< FAUSTFLOAT > fMax
Definition: compressordsp.h:1049
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:790
virtual void instanceInit(int sample_rate)
Definition: freeverbdsp.h:184
virtual void declare(FAUSTFLOAT *zone, const char *key, const char *val)
Definition: freeverbdsp.h:1305
virtual void update(double v) const
Definition: freeverbdsp.h:946
int getCurve()
Definition: freeverbdsp.h:1003
Definition: compressordsp.h:731
virtual void openTabBox(const char *label)
Definition: freeverbdsp.h:1255
virtual void instanceConstants(int sample_rate)
Definition: freeverbdsp.h:1743
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)=0
virtual void addButton(const char *label, FAUSTFLOAT *zone)
Definition: freeverbdsp.h:1262
Definition: compressordsp.h:431
std::string buildLabel(std::string label)
Definition: freeverbdsp.h:454
@ kVBargraph
Definition: compressordsp.h:1034
virtual void init(int sample_rate)=0
@ kLin
Definition: compressordsp.h:1038
virtual void declare(const char *key, const char *val)
Definition: freeverbdsp.h:1331
@ kNumEntry
Definition: compressordsp.h:1034
bool fHasScreenControl
Definition: compressordsp.h:1058
std::map< std::string, std::string > fCurrentMetadata
Definition: compressordsp.h:1070
virtual ~decorator_dsp()
Definition: freeverbdsp.h:177
int getValue()
Definition: freeverbdsp.h:1020
bool getActive()
Definition: freeverbdsp.h:662
Definition: compressordsp.h:61
Interpolator3pt(double lo, double mi, double hi, double v1, double vm, double v2)
Definition: freeverbdsp.h:615
void setActive(bool on_off)
Definition: freeverbdsp.h:661
APIUI()
Definition: freeverbdsp.h:1238
virtual int getSampleRate()=0
Type getParamType(int p)
Definition: freeverbdsp.h:1386
virtual void addHorizontalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: freeverbdsp.h:1289
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: freeverbdsp.h:191
std::vector< FAUSTFLOAT > fInit
Definition: compressordsp.h:1047
int getParamsCount()
Definition: freeverbdsp.h:1337
ItemType getParamItemType(int p)
Definition: freeverbdsp.h:1409
CurveZoneControl(FAUSTFLOAT *zone, int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: freeverbdsp.h:966
void metadata(Meta *m)
Definition: freeverbdsp.h:1672
std::string fCurrentUnit
Definition: compressordsp.h:1064
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: freeverbdsp.h:861
double operator()(double v)
Definition: compressordsp.h:587
Definition: compressordsp.h:353
void propagateAcc(int acc, double value)
Definition: freeverbdsp.h:1421
virtual void addVerticalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: freeverbdsp.h:1294
@ kHSlider
Definition: compressordsp.h:1034