7 #ifndef __zitarevmonodsp_H__
8 #define __zitarevmonodsp_H__
48 #define FAUSTFLOAT float
102 virtual void init(
int sample_rate) = 0;
226 #include <xmmintrin.h>
228 #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040)
230 #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000)
233 #define AVOIDDENORMALS
302 virtual void declare(
const char* key,
const char* value) = 0;
336 #define FAUSTFLOAT float
348 template <
typename REAL>
363 virtual void addButton(
const char* label, REAL* zone) = 0;
365 virtual void addVerticalSlider(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
366 virtual void addHorizontalSlider(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
367 virtual void addNumEntry(
const char* label, REAL* zone, REAL init, REAL min, REAL max, REAL step) = 0;
376 virtual void addSoundfile(
const char* label,
const char* filename, Soundfile** sf_zone) = 0;
380 virtual void declare(REAL* zone,
const char* key,
const char* val) {}
383 struct UI :
public UIReal<FAUSTFLOAT>
415 #ifndef FAUST_PATHBUILDER_H
416 #define FAUST_PATHBUILDER_H
441 std::string res =
"/";
447 std::replace(res.begin(), res.end(),
' ',
'_');
453 std::replace(label.begin(), label.end(),
' ',
'_');
462 #endif // FAUST_PATHBUILDER_H
488 #ifndef __ValueConverter__
489 #define __ValueConverter__
561 Range(
double x,
double y) : fLo(std::min<double>(x,y)), fHi(std::max<double>(x,y)) {}
562 double operator()(
double x) {
return (x<fLo) ? fLo : (x>fHi) ? fHi : x; }
572 Interpolator(
double lo,
double hi,
double v1,
double v2) : fRange(lo,hi)
576 fCoef = (v2-v1)/(hi-lo);
577 fOffset = v1 - lo*fCoef;
586 double x = fRange(v);
587 return fOffset + x*fCoef;
613 fSegment1(lo, mi, v1, vm),
614 fSegment2(mi, hi, vm, v2),
616 double operator()(
double x) {
return (x < fMid) ? fSegment1(x) : fSegment2(x); }
655 virtual void setMappingValues(
double amin,
double amid,
double amax,
double min,
double init,
double max) = 0;
678 fUI2F(umin,umax,fmin,fmax), fF2UI(fmin,fmax,umin,umax)
683 virtual double ui2faust(
double x) {
return fUI2F(x); }
684 virtual double faust2ui(
double x) {
return fF2UI(x); }
702 fUI2F(amin, amid, amax, min, init, max), fF2UI(min, init, max, amin, amid, amax)
705 LinearValueConverter2() : fUI2F(0.,0.,0.,0.,0.,0.), fF2UI(0.,0.,0.,0.,0.,0.)
708 virtual double ui2faust(
double x) {
return fUI2F(x); }
709 virtual double faust2ui(
double x) {
return fF2UI(x); }
711 virtual void setMappingValues(
double amin,
double amid,
double amax,
double min,
double init,
double max)
733 LinearValueConverter(umin, umax, std::log(std::max<double>(DBL_MIN, fmin)), std::log(std::max<double>(DBL_MIN, fmax)))
750 LinearValueConverter(umin, umax, std::min<double>(DBL_MAX, std::exp(fmin)), std::min<double>(DBL_MAX, std::exp(fmax)))
772 AccUpConverter(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax) :
773 fA2F(amin,amid,amax,fmin,fmid,fmax),
774 fF2A(fmin,fmid,fmax,amin,amid,amax)
777 virtual double ui2faust(
double x) {
return fA2F(x); }
778 virtual double faust2ui(
double x) {
return fF2A(x); }
780 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
808 AccDownConverter(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax) :
809 fA2F(amin,amid,amax,fmax,fmid,fmin),
810 fF2A(fmin,fmid,fmax,amax,amid,amin)
813 virtual double ui2faust(
double x) {
return fA2F(x); }
814 virtual double faust2ui(
double x) {
return fF2A(x); }
816 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
844 fA2F(amin,amid,amax,fmin,fmax,fmin),
845 fF2A(fmin,fmax,amin,amax)
848 virtual double ui2faust(
double x) {
return fA2F(x); }
849 virtual double faust2ui(
double x) {
return fF2A(x); }
851 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
879 fA2F(amin,amid,amax,fmax,fmin,fmax),
880 fF2A(fmin,fmax,amin,amax)
883 virtual double ui2faust(
double x) {
return fA2F(x); }
884 virtual double faust2ui(
double x) {
return fF2A(x); }
886 virtual void setMappingValues(
double amin,
double amid,
double amax,
double fmin,
double fmid,
double fmax)
916 virtual void setMappingValues(
int curve,
double amin,
double amid,
double amax,
double min,
double init,
double max) {}
958 std::vector<UpdatableValueConverter*> fValueConverters;
965 assert(curve >= 0 && curve <= 3);
966 fValueConverters.push_back(
new AccUpConverter(amin, amid, amax, min, init, max));
967 fValueConverters.push_back(
new AccDownConverter(amin, amid, amax, min, init, max));
974 std::vector<UpdatableValueConverter*>::iterator it;
975 for (it = fValueConverters.begin(); it != fValueConverters.end(); it++) {
979 void update(
double v)
const {
if (fValueConverters[fCurve]->
getActive()) *
fZone = fValueConverters[fCurve]->ui2faust(v); }
981 void setMappingValues(
int curve,
double amin,
double amid,
double amax,
double min,
double init,
double max)
983 fValueConverters[curve]->setMappingValues(amin, amid, amax, min, init, max);
989 fValueConverters[fCurve]->getMappingValues(amin, amid, amax);
994 std::vector<UpdatableValueConverter*>::iterator it;
995 for (it = fValueConverters.begin(); it != fValueConverters.end(); it++) {
996 (*it)->setActive(on_off);
1019 return (fZone !=
nullptr) ? int(fInterpolator(*fZone)) : 127;
1038 std::vector<std::string>
fPaths;
1039 std::vector<std::string>
fLabels;
1040 std::map<std::string, int>
fPathMap;
1043 std::vector<FAUSTFLOAT*>
fZone;
1044 std::vector<FAUSTFLOAT>
fInit;
1045 std::vector<FAUSTFLOAT>
fMin;
1046 std::vector<FAUSTFLOAT>
fMax;
1047 std::vector<FAUSTFLOAT>
fStep;
1049 std::vector<std::map<std::string, std::string> >
fMetaData;
1050 std::vector<ZoneControl*>
fAcc[3];
1051 std::vector<ZoneControl*>
fGyr[3];
1082 fZone.push_back(zone);
1083 fInit.push_back(init);
1084 fMin.push_back(min);
1085 fMax.push_back(max);
1086 fStep.push_back(step);
1103 std::cerr <<
"warning : 'acc' and 'gyr' metadata used for the same " << label <<
" parameter !!\n";
1110 double amin, amid, amax;
1111 iss >> axe >> curve >> amin >> amid >> amax;
1113 if ((0 <= axe) && (axe < 3) &&
1114 (0 <= curve) && (curve < 4) &&
1115 (amin < amax) && (amin <= amid) && (amid <= amax))
1119 std::cerr <<
"incorrect acc metadata : " <<
fCurrentAcc << std::endl;
1128 double amin, amid, amax;
1129 iss >> axe >> curve >> amin >> amid >> amax;
1131 if ((0 <= axe) && (axe < 3) &&
1132 (0 <= curve) && (curve < 4) &&
1133 (amin < amax) && (amin <= amid) && (amid <= amax))
1137 std::cerr <<
"incorrect gyr metadata : " <<
fCurrentGyr << std::endl;
1159 std::cerr <<
"incorrect screencolor metadata : " <<
fCurrentColor << std::endl;
1171 for (
size_t i = 0; i < table[val].size(); i++) {
1172 if (zone == table[val][i]->getZone())
return int(i);
1177 void setConverter(std::vector<ZoneControl*>* table,
int p,
int val,
int curve,
double amin,
double amid,
double amax)
1184 if (id1 != -1) table[0][id1]->setActive(
false);
1185 if (id2 != -1) table[1][id2]->setActive(
false);
1186 if (id3 != -1) table[2][id3]->setActive(
false);
1194 table[val][id4]->setMappingValues(curve, amin, amid, amax,
fMin[p],
fInit[p],
fMax[p]);
1195 table[val][id4]->setActive(
true);
1204 void getConverter(std::vector<ZoneControl*>* table,
int p,
int& val,
int& curve,
double& amin,
double& amid,
double& amax)
1212 curve = table[val][id1]->getCurve();
1213 table[val][id1]->getMappingValues(amin, amid, amax);
1214 }
else if (id2 != -1) {
1216 curve = table[val][id2]->getCurve();
1217 table[val][id2]->getMappingValues(amin, amid, amax);
1218 }
else if (id3 != -1) {
1220 curve = table[val][id3]->getCurve();
1221 table[val][id3]->getMappingValues(amin, amid, amax);
1241 for (
int i = 0; i < 3; i++) {
1242 for (
auto& it :
fAcc[i])
delete it;
1243 for (
auto& it :
fGyr[i])
delete it;
1298 virtual void addSoundfile(
const char* label,
const char* filename, Soundfile** sf_zone) {}
1307 if (strcmp(key,
"scale") == 0) {
1308 if (strcmp(val,
"log") == 0) {
1310 }
else if (strcmp(val,
"exp") == 0) {
1315 }
else if (strcmp(key,
"unit") == 0) {
1317 }
else if (strcmp(key,
"acc") == 0) {
1319 }
else if (strcmp(key,
"gyr") == 0) {
1321 }
else if (strcmp(key,
"screencolor") == 0) {
1323 }
else if (strcmp(key,
"tooltip") == 0) {
1328 virtual void declare(
const char* key,
const char* val)
1349 std::map<const char*, const char*> res;
1350 std::map<std::string, std::string> metadata =
fMetaData[p];
1351 for (
auto it : metadata) {
1352 res[it.first.c_str()] = it.second.c_str();
1420 for (
size_t i = 0; i <
fAcc[acc].size(); i++) {
1421 fAcc[acc][i]->update(value);
1468 void getAccConverter(
int p,
int& acc,
int& curve,
double& amin,
double& amid,
double& amax)
1484 void getGyrConverter(
int p,
int& gyr,
int& curve,
double& amin,
double& amid,
double& amax)
1498 for (
size_t i = 0; i <
fGyr[gyr].size(); i++) {
1499 fGyr[gyr][i]->update(value);
1512 return (acc >= 0 && acc < 3) ? int(
fAcc[acc].size()) : 0;
1524 return (gyr >= 0 && gyr < 3) ? int(
fGyr[gyr].size()) : 0;
1535 return (r<<16) | (g<<8) | b;
1555 #define FAUSTFLOAT float
1558 #include <algorithm>
1562 static float zitarevmonodsp_faustpower2_f(
float value) {
1563 return (value * value);
1567 #define FAUSTCLASS zitarevmonodsp
1571 #define exp10f __exp10f
1572 #define exp10 __exp10
1653 float fVec11[16384];
1663 float fVec13[16384];
1673 float fVec15[16384];
1695 m->
declare(
"basics.lib/name",
"Faust Basic Element Library");
1696 m->
declare(
"basics.lib/version",
"0.1");
1697 m->
declare(
"delays.lib/name",
"Faust Delay Library");
1698 m->
declare(
"delays.lib/version",
"0.1");
1699 m->
declare(
"filename",
"zitarevmonodsp.dsp");
1700 m->
declare(
"filters.lib/allpass_comb:author",
"Julius O. Smith III");
1701 m->
declare(
"filters.lib/allpass_comb:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1702 m->
declare(
"filters.lib/allpass_comb:license",
"MIT-style STK-4.3 license");
1703 m->
declare(
"filters.lib/fir:author",
"Julius O. Smith III");
1704 m->
declare(
"filters.lib/fir:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1705 m->
declare(
"filters.lib/fir:license",
"MIT-style STK-4.3 license");
1706 m->
declare(
"filters.lib/iir:author",
"Julius O. Smith III");
1707 m->
declare(
"filters.lib/iir:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1708 m->
declare(
"filters.lib/iir:license",
"MIT-style STK-4.3 license");
1709 m->
declare(
"filters.lib/lowpass0_highpass1",
"MIT-style STK-4.3 license");
1710 m->
declare(
"filters.lib/lowpass0_highpass1:author",
"Julius O. Smith III");
1711 m->
declare(
"filters.lib/lowpass:author",
"Julius O. Smith III");
1712 m->
declare(
"filters.lib/lowpass:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1713 m->
declare(
"filters.lib/lowpass:license",
"MIT-style STK-4.3 license");
1714 m->
declare(
"filters.lib/name",
"Faust Filters Library");
1715 m->
declare(
"filters.lib/peak_eq_rm:author",
"Julius O. Smith III");
1716 m->
declare(
"filters.lib/peak_eq_rm:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1717 m->
declare(
"filters.lib/peak_eq_rm:license",
"MIT-style STK-4.3 license");
1718 m->
declare(
"filters.lib/tf1:author",
"Julius O. Smith III");
1719 m->
declare(
"filters.lib/tf1:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1720 m->
declare(
"filters.lib/tf1:license",
"MIT-style STK-4.3 license");
1721 m->
declare(
"filters.lib/tf1s:author",
"Julius O. Smith III");
1722 m->
declare(
"filters.lib/tf1s:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1723 m->
declare(
"filters.lib/tf1s:license",
"MIT-style STK-4.3 license");
1724 m->
declare(
"filters.lib/tf2:author",
"Julius O. Smith III");
1725 m->
declare(
"filters.lib/tf2:copyright",
"Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1726 m->
declare(
"filters.lib/tf2:license",
"MIT-style STK-4.3 license");
1727 m->
declare(
"maths.lib/author",
"GRAME");
1728 m->
declare(
"maths.lib/copyright",
"GRAME");
1729 m->
declare(
"maths.lib/license",
"LGPL with exception");
1730 m->
declare(
"maths.lib/name",
"Faust Math Library");
1731 m->
declare(
"maths.lib/version",
"2.3");
1732 m->
declare(
"name",
"zitarevmonodsp");
1733 m->
declare(
"platform.lib/name",
"Generic Platform Library");
1734 m->
declare(
"platform.lib/version",
"0.1");
1735 m->
declare(
"reverbs.lib/name",
"Faust Reverb Library");
1736 m->
declare(
"reverbs.lib/version",
"0.0");
1737 m->
declare(
"routes.lib/name",
"Faust Signal Routing Library");
1738 m->
declare(
"routes.lib/version",
"0.2");
1739 m->
declare(
"signals.lib/name",
"Faust Signal Routing Library");
1740 m->
declare(
"signals.lib/version",
"0.0");
1751 switch ((channel)) {
1765 switch ((channel)) {
1782 fSampleRate = sample_rate;
1783 fConst0 = std::min<float>(192000.0f, std::max<float>(1.0f,
float(fSampleRate)));
1784 fConst1 = (6.28318548f / fConst0);
1785 fConst2 = std::floor(((0.219990999f * fConst0) + 0.5f));
1786 fConst3 = ((0.0f - (6.90775537f * fConst2)) / fConst0);
1787 fConst4 = (3.14159274f / fConst0);
1788 fConst5 = std::floor(((0.0191229992f * fConst0) + 0.5f));
1789 iConst6 = int(std::min<float>(16384.0f, std::max<float>(0.0f, (fConst2 - fConst5))));
1790 fConst7 = (0.00100000005f * fConst0);
1791 iConst8 = int(std::min<float>(1024.0f, std::max<float>(0.0f, (fConst5 + -1.0f))));
1792 fConst9 = std::floor(((0.256891012f * fConst0) + 0.5f));
1793 fConst10 = ((0.0f - (6.90775537f * fConst9)) / fConst0);
1794 fConst11 = std::floor(((0.0273330007f * fConst0) + 0.5f));
1795 iConst12 = int(std::min<float>(16384.0f, std::max<float>(0.0f, (fConst9 - fConst11))));
1796 iConst13 = int(std::min<float>(2048.0f, std::max<float>(0.0f, (fConst11 + -1.0f))));
1797 fConst14 = std::floor(((0.192303002f * fConst0) + 0.5f));
1798 fConst15 = ((0.0f - (6.90775537f * fConst14)) / fConst0);
1799 fConst16 = std::floor(((0.0292910002f * fConst0) + 0.5f));
1800 iConst17 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst14 - fConst16))));
1801 iConst18 = int(std::min<float>(2048.0f, std::max<float>(0.0f, (fConst16 + -1.0f))));
1802 fConst19 = std::floor(((0.210389003f * fConst0) + 0.5f));
1803 fConst20 = ((0.0f - (6.90775537f * fConst19)) / fConst0);
1804 fConst21 = std::floor(((0.0244210009f * fConst0) + 0.5f));
1805 iConst22 = int(std::min<float>(16384.0f, std::max<float>(0.0f, (fConst19 - fConst21))));
1806 iConst23 = int(std::min<float>(2048.0f, std::max<float>(0.0f, (fConst21 + -1.0f))));
1807 fConst24 = std::floor(((0.125f * fConst0) + 0.5f));
1808 fConst25 = ((0.0f - (6.90775537f * fConst24)) / fConst0);
1809 fConst26 = std::floor(((0.0134579996f * fConst0) + 0.5f));
1810 iConst27 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst24 - fConst26))));
1811 iConst28 = int(std::min<float>(1024.0f, std::max<float>(0.0f, (fConst26 + -1.0f))));
1812 fConst29 = std::floor(((0.127837002f * fConst0) + 0.5f));
1813 fConst30 = ((0.0f - (6.90775537f * fConst29)) / fConst0);
1814 fConst31 = std::floor(((0.0316039994f * fConst0) + 0.5f));
1815 iConst32 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst29 - fConst31))));
1816 iConst33 = int(std::min<float>(2048.0f, std::max<float>(0.0f, (fConst31 + -1.0f))));
1817 fConst34 = std::floor(((0.174713001f * fConst0) + 0.5f));
1818 fConst35 = ((0.0f - (6.90775537f * fConst34)) / fConst0);
1819 fConst36 = std::floor(((0.0229039993f * fConst0) + 0.5f));
1820 iConst37 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst34 - fConst36))));
1821 iConst38 = int(std::min<float>(2048.0f, std::max<float>(0.0f, (fConst36 + -1.0f))));
1822 fConst39 = std::floor(((0.153128996f * fConst0) + 0.5f));
1823 fConst40 = ((0.0f - (6.90775537f * fConst39)) / fConst0);
1824 fConst41 = std::floor(((0.0203460008f * fConst0) + 0.5f));
1825 iConst42 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst39 - fConst41))));
1826 iConst43 = int(std::min<float>(1024.0f, std::max<float>(0.0f, (fConst41 + -1.0f))));
1845 for (
int l0 = 0; (l0 < 16384); l0 = (l0 + 1)) {
1848 for (
int l1 = 0; (l1 < 2); l1 = (l1 + 1)) {
1851 for (
int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
1854 for (
int l3 = 0; (l3 < 2); l3 = (l3 + 1)) {
1857 for (
int l4 = 0; (l4 < 2); l4 = (l4 + 1)) {
1860 for (
int l5 = 0; (l5 < 32768); l5 = (l5 + 1)) {
1863 for (
int l6 = 0; (l6 < 2048); l6 = (l6 + 1)) {
1866 for (
int l7 = 0; (l7 < 2); l7 = (l7 + 1)) {
1869 for (
int l8 = 0; (l8 < 2); l8 = (l8 + 1)) {
1872 for (
int l9 = 0; (l9 < 2); l9 = (l9 + 1)) {
1875 for (
int l10 = 0; (l10 < 32768); l10 = (l10 + 1)) {
1878 for (
int l11 = 0; (l11 < 4096); l11 = (l11 + 1)) {
1881 for (
int l12 = 0; (l12 < 2); l12 = (l12 + 1)) {
1884 for (
int l13 = 0; (l13 < 2); l13 = (l13 + 1)) {
1887 for (
int l14 = 0; (l14 < 2); l14 = (l14 + 1)) {
1890 for (
int l15 = 0; (l15 < 16384); l15 = (l15 + 1)) {
1893 for (
int l16 = 0; (l16 < 4096); l16 = (l16 + 1)) {
1896 for (
int l17 = 0; (l17 < 2); l17 = (l17 + 1)) {
1899 for (
int l18 = 0; (l18 < 2); l18 = (l18 + 1)) {
1902 for (
int l19 = 0; (l19 < 2); l19 = (l19 + 1)) {
1905 for (
int l20 = 0; (l20 < 32768); l20 = (l20 + 1)) {
1908 for (
int l21 = 0; (l21 < 4096); l21 = (l21 + 1)) {
1911 for (
int l22 = 0; (l22 < 2); l22 = (l22 + 1)) {
1914 for (
int l23 = 0; (l23 < 2); l23 = (l23 + 1)) {
1917 for (
int l24 = 0; (l24 < 2); l24 = (l24 + 1)) {
1920 for (
int l25 = 0; (l25 < 16384); l25 = (l25 + 1)) {
1923 for (
int l26 = 0; (l26 < 2048); l26 = (l26 + 1)) {
1926 for (
int l27 = 0; (l27 < 2); l27 = (l27 + 1)) {
1929 for (
int l28 = 0; (l28 < 2); l28 = (l28 + 1)) {
1932 for (
int l29 = 0; (l29 < 2); l29 = (l29 + 1)) {
1935 for (
int l30 = 0; (l30 < 16384); l30 = (l30 + 1)) {
1938 for (
int l31 = 0; (l31 < 4096); l31 = (l31 + 1)) {
1941 for (
int l32 = 0; (l32 < 2); l32 = (l32 + 1)) {
1944 for (
int l33 = 0; (l33 < 2); l33 = (l33 + 1)) {
1947 for (
int l34 = 0; (l34 < 2); l34 = (l34 + 1)) {
1950 for (
int l35 = 0; (l35 < 16384); l35 = (l35 + 1)) {
1953 for (
int l36 = 0; (l36 < 4096); l36 = (l36 + 1)) {
1956 for (
int l37 = 0; (l37 < 2); l37 = (l37 + 1)) {
1959 for (
int l38 = 0; (l38 < 2); l38 = (l38 + 1)) {
1962 for (
int l39 = 0; (l39 < 2); l39 = (l39 + 1)) {
1965 for (
int l40 = 0; (l40 < 16384); l40 = (l40 + 1)) {
1968 for (
int l41 = 0; (l41 < 2048); l41 = (l41 + 1)) {
1971 for (
int l42 = 0; (l42 < 2); l42 = (l42 + 1)) {
1974 for (
int l43 = 0; (l43 < 3); l43 = (l43 + 1)) {
1977 for (
int l44 = 0; (l44 < 3); l44 = (l44 + 1)) {
1980 for (
int l45 = 0; (l45 < 3); l45 = (l45 + 1)) {
1983 for (
int l46 = 0; (l46 < 3); l46 = (l46 + 1)) {
1986 for (
int l47 = 0; (l47 < 3); l47 = (l47 + 1)) {
1989 for (
int l48 = 0; (l48 < 3); l48 = (l48 + 1)) {
1992 for (
int l49 = 0; (l49 < 3); l49 = (l49 + 1)) {
1995 for (
int l50 = 0; (l50 < 3); l50 = (l50 + 1)) {
1998 for (
int l51 = 0; (l51 < 3); l51 = (l51 + 1)) {
2001 for (
int l52 = 0; (l52 < 3); l52 = (l52 + 1)) {
2004 for (
int l53 = 0; (l53 < 3); l53 = (l53 + 1)) {
2007 for (
int l54 = 0; (l54 < 3); l54 = (l54 + 1)) {
2012 virtual void init(
int sample_rate) {
2031 ui_interface->
declare(0,
"0",
"");
2032 ui_interface->
declare(0,
"tooltip",
"~ ZITA REV1 FEEDBACK DELAY NETWORK (FDN) & SCHROEDER ALLPASS-COMB REVERBERATOR (8x8). See Faust's reverbs.lib for documentation and references");
2034 ui_interface->
declare(0,
"1",
"");
2036 ui_interface->
declare(&fVslider10,
"1",
"");
2037 ui_interface->
declare(&fVslider10,
"style",
"knob");
2038 ui_interface->
declare(&fVslider10,
"tooltip",
"Delay in ms before reverberation begins");
2039 ui_interface->
declare(&fVslider10,
"unit",
"ms");
2040 ui_interface->
addVerticalSlider(
"In Delay", &fVslider10, 60.0f, 20.0f, 100.0f, 1.0f);
2042 ui_interface->
declare(0,
"2",
"");
2044 ui_interface->
declare(&fVslider9,
"1",
"");
2045 ui_interface->
declare(&fVslider9,
"scale",
"log");
2046 ui_interface->
declare(&fVslider9,
"style",
"knob");
2047 ui_interface->
declare(&fVslider9,
"tooltip",
"Crossover frequency (Hz) separating low and middle frequencies");
2048 ui_interface->
declare(&fVslider9,
"unit",
"Hz");
2049 ui_interface->
addVerticalSlider(
"LF X", &fVslider9, 200.0f, 50.0f, 1000.0f, 1.0f);
2050 ui_interface->
declare(&fVslider8,
"2",
"");
2051 ui_interface->
declare(&fVslider8,
"scale",
"log");
2052 ui_interface->
declare(&fVslider8,
"style",
"knob");
2053 ui_interface->
declare(&fVslider8,
"tooltip",
"T60 = time (in seconds) to decay 60dB in low-frequency band");
2054 ui_interface->
declare(&fVslider8,
"unit",
"s");
2055 ui_interface->
addVerticalSlider(
"Low RT60", &fVslider8, 3.0f, 1.0f, 8.0f, 0.100000001f);
2056 ui_interface->
declare(&fVslider6,
"3",
"");
2057 ui_interface->
declare(&fVslider6,
"scale",
"log");
2058 ui_interface->
declare(&fVslider6,
"style",
"knob");
2059 ui_interface->
declare(&fVslider6,
"tooltip",
"T60 = time (in seconds) to decay 60dB in middle band");
2060 ui_interface->
declare(&fVslider6,
"unit",
"s");
2061 ui_interface->
addVerticalSlider(
"Mid RT60", &fVslider6, 2.0f, 1.0f, 8.0f, 0.100000001f);
2062 ui_interface->
declare(&fVslider7,
"4",
"");
2063 ui_interface->
declare(&fVslider7,
"scale",
"log");
2064 ui_interface->
declare(&fVslider7,
"style",
"knob");
2065 ui_interface->
declare(&fVslider7,
"tooltip",
"Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60");
2066 ui_interface->
declare(&fVslider7,
"unit",
"Hz");
2067 ui_interface->
addVerticalSlider(
"HF Damping", &fVslider7, 6000.0f, 1500.0f, 23520.0f, 1.0f);
2069 ui_interface->
declare(0,
"3",
"");
2071 ui_interface->
declare(&fVslider4,
"1",
"");
2072 ui_interface->
declare(&fVslider4,
"scale",
"log");
2073 ui_interface->
declare(&fVslider4,
"style",
"knob");
2074 ui_interface->
declare(&fVslider4,
"tooltip",
"Center-frequency of second-order Regalia-Mitra peaking equalizer section 1");
2075 ui_interface->
declare(&fVslider4,
"unit",
"Hz");
2076 ui_interface->
addVerticalSlider(
"Eq1 Freq", &fVslider4, 315.0f, 40.0f, 2500.0f, 1.0f);
2077 ui_interface->
declare(&fVslider5,
"2",
"");
2078 ui_interface->
declare(&fVslider5,
"style",
"knob");
2079 ui_interface->
declare(&fVslider5,
"tooltip",
"Peak level in dB of second-order Regalia-Mitra peaking equalizer section 1");
2080 ui_interface->
declare(&fVslider5,
"unit",
"dB");
2081 ui_interface->
addVerticalSlider(
"Eq1 Level", &fVslider5, 0.0f, -15.0f, 15.0f, 0.100000001f);
2083 ui_interface->
declare(0,
"4",
"");
2085 ui_interface->
declare(&fVslider2,
"1",
"");
2086 ui_interface->
declare(&fVslider2,
"scale",
"log");
2087 ui_interface->
declare(&fVslider2,
"style",
"knob");
2088 ui_interface->
declare(&fVslider2,
"tooltip",
"Center-frequency of second-order Regalia-Mitra peaking equalizer section 2");
2089 ui_interface->
declare(&fVslider2,
"unit",
"Hz");
2090 ui_interface->
addVerticalSlider(
"Eq2 Freq", &fVslider2, 1500.0f, 160.0f, 10000.0f, 1.0f);
2091 ui_interface->
declare(&fVslider3,
"2",
"");
2092 ui_interface->
declare(&fVslider3,
"style",
"knob");
2093 ui_interface->
declare(&fVslider3,
"tooltip",
"Peak level in dB of second-order Regalia-Mitra peaking equalizer section 2");
2094 ui_interface->
declare(&fVslider3,
"unit",
"dB");
2095 ui_interface->
addVerticalSlider(
"Eq2 Level", &fVslider3, 0.0f, -15.0f, 15.0f, 0.100000001f);
2097 ui_interface->
declare(0,
"5",
"");
2099 ui_interface->
declare(&fVslider1,
"1",
"");
2100 ui_interface->
declare(&fVslider1,
"style",
"knob");
2101 ui_interface->
declare(&fVslider1,
"tooltip",
"Dry/Wet Mix: 0 = dry, 1 = wet");
2102 ui_interface->
addVerticalSlider(
"Wet", &fVslider1, 0.0f, 0.0f, 1.0f, 0.00999999978f);
2103 ui_interface->
declare(&fVslider0,
"2",
"");
2104 ui_interface->
declare(&fVslider0,
"style",
"knob");
2105 ui_interface->
declare(&fVslider0,
"tooltip",
"Output scale factor");
2106 ui_interface->
declare(&fVslider0,
"unit",
"dB");
2107 ui_interface->
addVerticalSlider(
"Level", &fVslider0, -3.0f, -70.0f, 20.0f, 0.100000001f);
2115 float fSlow0 = (0.00100000005f * std::pow(10.0f, (0.0500000007f *
float(fVslider0))));
2116 float fSlow1 = (0.00100000005f * float(fVslider1));
2117 float fSlow2 = float(fVslider2);
2118 float fSlow3 = std::pow(10.0f, (0.0500000007f *
float(fVslider3)));
2119 float fSlow4 = (fConst1 * (fSlow2 / std::sqrt(std::max<float>(0.0f, fSlow3))));
2120 float fSlow5 = ((1.0f - fSlow4) / (fSlow4 + 1.0f));
2121 float fSlow6 = float(fVslider4);
2122 float fSlow7 = std::pow(10.0f, (0.0500000007f *
float(fVslider5)));
2123 float fSlow8 = (fConst1 * (fSlow6 / std::sqrt(std::max<float>(0.0f, fSlow7))));
2124 float fSlow9 = ((1.0f - fSlow8) / (fSlow8 + 1.0f));
2125 float fSlow10 = float(fVslider6);
2126 float fSlow11 = std::exp((fConst3 / fSlow10));
2127 float fSlow12 = zitarevmonodsp_faustpower2_f(fSlow11);
2128 float fSlow13 = std::cos((fConst1 *
float(fVslider7)));
2129 float fSlow14 = (1.0f - (fSlow12 * fSlow13));
2130 float fSlow15 = (1.0f - fSlow12);
2131 float fSlow16 = (fSlow14 / fSlow15);
2132 float fSlow17 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow14) / zitarevmonodsp_faustpower2_f(fSlow15)) + -1.0f)));
2133 float fSlow18 = (fSlow16 - fSlow17);
2134 float fSlow19 = (fSlow11 * (fSlow17 + (1.0f - fSlow16)));
2135 float fSlow20 = float(fVslider8);
2136 float fSlow21 = ((std::exp((fConst3 / fSlow20)) / fSlow11) + -1.0f);
2137 float fSlow22 = (1.0f / std::tan((fConst4 *
float(fVslider9))));
2138 float fSlow23 = (1.0f / (fSlow22 + 1.0f));
2139 float fSlow24 = (1.0f - fSlow22);
2140 int iSlow25 = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst7 *
float(fVslider10)))));
2141 float fSlow26 = std::exp((fConst10 / fSlow10));
2142 float fSlow27 = zitarevmonodsp_faustpower2_f(fSlow26);
2143 float fSlow28 = (1.0f - (fSlow27 * fSlow13));
2144 float fSlow29 = (1.0f - fSlow27);
2145 float fSlow30 = (fSlow28 / fSlow29);
2146 float fSlow31 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow28) / zitarevmonodsp_faustpower2_f(fSlow29)) + -1.0f)));
2147 float fSlow32 = (fSlow30 - fSlow31);
2148 float fSlow33 = (fSlow26 * (fSlow31 + (1.0f - fSlow30)));
2149 float fSlow34 = ((std::exp((fConst10 / fSlow20)) / fSlow26) + -1.0f);
2150 float fSlow35 = std::exp((fConst15 / fSlow10));
2151 float fSlow36 = zitarevmonodsp_faustpower2_f(fSlow35);
2152 float fSlow37 = (1.0f - (fSlow36 * fSlow13));
2153 float fSlow38 = (1.0f - fSlow36);
2154 float fSlow39 = (fSlow37 / fSlow38);
2155 float fSlow40 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow37) / zitarevmonodsp_faustpower2_f(fSlow38)) + -1.0f)));
2156 float fSlow41 = (fSlow39 - fSlow40);
2157 float fSlow42 = (fSlow35 * (fSlow40 + (1.0f - fSlow39)));
2158 float fSlow43 = ((std::exp((fConst15 / fSlow20)) / fSlow35) + -1.0f);
2159 float fSlow44 = std::exp((fConst20 / fSlow10));
2160 float fSlow45 = zitarevmonodsp_faustpower2_f(fSlow44);
2161 float fSlow46 = (1.0f - (fSlow45 * fSlow13));
2162 float fSlow47 = (1.0f - fSlow45);
2163 float fSlow48 = (fSlow46 / fSlow47);
2164 float fSlow49 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow46) / zitarevmonodsp_faustpower2_f(fSlow47)) + -1.0f)));
2165 float fSlow50 = (fSlow48 - fSlow49);
2166 float fSlow51 = (fSlow44 * (fSlow49 + (1.0f - fSlow48)));
2167 float fSlow52 = ((std::exp((fConst20 / fSlow20)) / fSlow44) + -1.0f);
2168 float fSlow53 = std::exp((fConst25 / fSlow10));
2169 float fSlow54 = zitarevmonodsp_faustpower2_f(fSlow53);
2170 float fSlow55 = (1.0f - (fSlow54 * fSlow13));
2171 float fSlow56 = (1.0f - fSlow54);
2172 float fSlow57 = (fSlow55 / fSlow56);
2173 float fSlow58 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow55) / zitarevmonodsp_faustpower2_f(fSlow56)) + -1.0f)));
2174 float fSlow59 = (fSlow57 - fSlow58);
2175 float fSlow60 = (fSlow53 * (fSlow58 + (1.0f - fSlow57)));
2176 float fSlow61 = ((std::exp((fConst25 / fSlow20)) / fSlow53) + -1.0f);
2177 float fSlow62 = std::exp((fConst30 / fSlow10));
2178 float fSlow63 = zitarevmonodsp_faustpower2_f(fSlow62);
2179 float fSlow64 = (1.0f - (fSlow63 * fSlow13));
2180 float fSlow65 = (1.0f - fSlow63);
2181 float fSlow66 = (fSlow64 / fSlow65);
2182 float fSlow67 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow64) / zitarevmonodsp_faustpower2_f(fSlow65)) + -1.0f)));
2183 float fSlow68 = (fSlow66 - fSlow67);
2184 float fSlow69 = (fSlow62 * (fSlow67 + (1.0f - fSlow66)));
2185 float fSlow70 = ((std::exp((fConst30 / fSlow20)) / fSlow62) + -1.0f);
2186 float fSlow71 = std::exp((fConst35 / fSlow10));
2187 float fSlow72 = zitarevmonodsp_faustpower2_f(fSlow71);
2188 float fSlow73 = (1.0f - (fSlow72 * fSlow13));
2189 float fSlow74 = (1.0f - fSlow72);
2190 float fSlow75 = (fSlow73 / fSlow74);
2191 float fSlow76 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow73) / zitarevmonodsp_faustpower2_f(fSlow74)) + -1.0f)));
2192 float fSlow77 = (fSlow75 - fSlow76);
2193 float fSlow78 = (fSlow71 * (fSlow76 + (1.0f - fSlow75)));
2194 float fSlow79 = ((std::exp((fConst35 / fSlow20)) / fSlow71) + -1.0f);
2195 float fSlow80 = std::exp((fConst40 / fSlow10));
2196 float fSlow81 = zitarevmonodsp_faustpower2_f(fSlow80);
2197 float fSlow82 = (1.0f - (fSlow81 * fSlow13));
2198 float fSlow83 = (1.0f - fSlow81);
2199 float fSlow84 = (fSlow82 / fSlow83);
2200 float fSlow85 = std::sqrt(std::max<float>(0.0f, ((zitarevmonodsp_faustpower2_f(fSlow82) / zitarevmonodsp_faustpower2_f(fSlow83)) + -1.0f)));
2201 float fSlow86 = (fSlow84 - fSlow85);
2202 float fSlow87 = (fSlow80 * (fSlow85 + (1.0f - fSlow84)));
2203 float fSlow88 = ((std::exp((fConst40 / fSlow20)) / fSlow80) + -1.0f);
2204 float fSlow89 = (0.0f - (std::cos((fConst1 * fSlow6)) * (fSlow9 + 1.0f)));
2205 float fSlow90 = (0.0f - (std::cos((fConst1 * fSlow2)) * (fSlow5 + 1.0f)));
2206 for (
int i = 0; (i < count); i = (i + 1)) {
2207 float fTemp0 = float(input0[i]);
2208 fVec0[(IOTA & 16383)] = fTemp0;
2209 fRec0[0] = (fSlow0 + (0.999000013f * fRec0[1]));
2210 fRec1[0] = (fSlow1 + (0.999000013f * fRec1[1]));
2211 fRec15[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec15[1]) - (fRec11[1] + fRec11[2]))));
2212 fRec14[0] = ((fSlow18 * fRec14[1]) + (fSlow19 * (fRec11[1] + (fSlow21 * fRec15[0]))));
2213 fVec1[(IOTA & 32767)] = ((0.353553385f * fRec14[0]) + 9.99999968e-21f);
2214 float fTemp1 = (0.300000012f * fVec0[((IOTA - iSlow25) & 16383)]);
2215 float fTemp2 = (((0.600000024f * fRec12[1]) + fVec1[((IOTA - iConst6) & 32767)]) - fTemp1);
2216 fVec2[(IOTA & 2047)] = fTemp2;
2217 fRec12[0] = fVec2[((IOTA - iConst8) & 2047)];
2218 float fRec13 = (0.0f - (0.600000024f * fTemp2));
2219 fRec19[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec19[1]) - (fRec7[1] + fRec7[2]))));
2220 fRec18[0] = ((fSlow32 * fRec18[1]) + (fSlow33 * (fRec7[1] + (fSlow34 * fRec19[0]))));
2221 fVec3[(IOTA & 32767)] = ((0.353553385f * fRec18[0]) + 9.99999968e-21f);
2222 float fTemp3 = (((0.600000024f * fRec16[1]) + fVec3[((IOTA - iConst12) & 32767)]) - fTemp1);
2223 fVec4[(IOTA & 4095)] = fTemp3;
2224 fRec16[0] = fVec4[((IOTA - iConst13) & 4095)];
2225 float fRec17 = (0.0f - (0.600000024f * fTemp3));
2226 fRec23[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec23[1]) - (fRec9[1] + fRec9[2]))));
2227 fRec22[0] = ((fSlow41 * fRec22[1]) + (fSlow42 * (fRec9[1] + (fSlow43 * fRec23[0]))));
2228 fVec5[(IOTA & 16383)] = ((0.353553385f * fRec22[0]) + 9.99999968e-21f);
2229 float fTemp4 = (fVec5[((IOTA - iConst17) & 16383)] + (fTemp1 + (0.600000024f * fRec20[1])));
2230 fVec6[(IOTA & 4095)] = fTemp4;
2231 fRec20[0] = fVec6[((IOTA - iConst18) & 4095)];
2232 float fRec21 = (0.0f - (0.600000024f * fTemp4));
2233 fRec27[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec27[1]) - (fRec5[1] + fRec5[2]))));
2234 fRec26[0] = ((fSlow50 * fRec26[1]) + (fSlow51 * (fRec5[1] + (fSlow52 * fRec27[0]))));
2235 fVec7[(IOTA & 32767)] = ((0.353553385f * fRec26[0]) + 9.99999968e-21f);
2236 float fTemp5 = (fVec7[((IOTA - iConst22) & 32767)] + (fTemp1 + (0.600000024f * fRec24[1])));
2237 fVec8[(IOTA & 4095)] = fTemp5;
2238 fRec24[0] = fVec8[((IOTA - iConst23) & 4095)];
2239 float fRec25 = (0.0f - (0.600000024f * fTemp5));
2240 fRec31[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec31[1]) - (fRec10[1] + fRec10[2]))));
2241 fRec30[0] = ((fSlow59 * fRec30[1]) + (fSlow60 * (fRec10[1] + (fSlow61 * fRec31[0]))));
2242 fVec9[(IOTA & 16383)] = ((0.353553385f * fRec30[0]) + 9.99999968e-21f);
2243 float fTemp6 = (fVec9[((IOTA - iConst27) & 16383)] - (fTemp1 + (0.600000024f * fRec28[1])));
2244 fVec10[(IOTA & 2047)] = fTemp6;
2245 fRec28[0] = fVec10[((IOTA - iConst28) & 2047)];
2246 float fRec29 = (0.600000024f * fTemp6);
2247 fRec35[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec35[1]) - (fRec6[1] + fRec6[2]))));
2248 fRec34[0] = ((fSlow68 * fRec34[1]) + (fSlow69 * (fRec6[1] + (fSlow70 * fRec35[0]))));
2249 fVec11[(IOTA & 16383)] = ((0.353553385f * fRec34[0]) + 9.99999968e-21f);
2250 float fTemp7 = (fVec11[((IOTA - iConst32) & 16383)] - (fTemp1 + (0.600000024f * fRec32[1])));
2251 fVec12[(IOTA & 4095)] = fTemp7;
2252 fRec32[0] = fVec12[((IOTA - iConst33) & 4095)];
2253 float fRec33 = (0.600000024f * fTemp7);
2254 fRec39[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec39[1]) - (fRec8[1] + fRec8[2]))));
2255 fRec38[0] = ((fSlow77 * fRec38[1]) + (fSlow78 * (fRec8[1] + (fSlow79 * fRec39[0]))));
2256 fVec13[(IOTA & 16383)] = ((0.353553385f * fRec38[0]) + 9.99999968e-21f);
2257 float fTemp8 = ((fTemp1 + fVec13[((IOTA - iConst37) & 16383)]) - (0.600000024f * fRec36[1]));
2258 fVec14[(IOTA & 4095)] = fTemp8;
2259 fRec36[0] = fVec14[((IOTA - iConst38) & 4095)];
2260 float fRec37 = (0.600000024f * fTemp8);
2261 fRec43[0] = (0.0f - (fSlow23 * ((fSlow24 * fRec43[1]) - (fRec4[1] + fRec4[2]))));
2262 fRec42[0] = ((fSlow86 * fRec42[1]) + (fSlow87 * (fRec4[1] + (fSlow88 * fRec43[0]))));
2263 fVec15[(IOTA & 16383)] = ((0.353553385f * fRec42[0]) + 9.99999968e-21f);
2264 float fTemp9 = ((fVec15[((IOTA - iConst42) & 16383)] + fTemp1) - (0.600000024f * fRec40[1]));
2265 fVec16[(IOTA & 2047)] = fTemp9;
2266 fRec40[0] = fVec16[((IOTA - iConst43) & 2047)];
2267 float fRec41 = (0.600000024f * fTemp9);
2268 float fTemp10 = (fRec41 + fRec37);
2269 float fTemp11 = (fRec29 + (fRec33 + fTemp10));
2270 fRec4[0] = (fRec12[1] + (fRec16[1] + (fRec20[1] + (fRec24[1] + (fRec28[1] + (fRec32[1] + (fRec36[1] + (fRec40[1] + (fRec13 + (fRec17 + (fRec21 + (fRec25 + fTemp11))))))))))));
2271 fRec5[0] = ((fRec28[1] + (fRec32[1] + (fRec36[1] + (fRec40[1] + fTemp11)))) - (fRec12[1] + (fRec16[1] + (fRec20[1] + (fRec24[1] + (fRec13 + (fRec17 + (fRec25 + fRec21))))))));
2272 float fTemp12 = (fRec33 + fRec29);
2273 fRec6[0] = ((fRec20[1] + (fRec24[1] + (fRec36[1] + (fRec40[1] + (fRec21 + (fRec25 + fTemp10)))))) - (fRec12[1] + (fRec16[1] + (fRec28[1] + (fRec32[1] + (fRec13 + (fRec17 + fTemp12)))))));
2274 fRec7[0] = ((fRec12[1] + (fRec16[1] + (fRec36[1] + (fRec40[1] + (fRec13 + (fRec17 + fTemp10)))))) - (fRec20[1] + (fRec24[1] + (fRec28[1] + (fRec32[1] + (fRec21 + (fRec25 + fTemp12)))))));
2275 float fTemp13 = (fRec41 + fRec33);
2276 float fTemp14 = (fRec37 + fRec29);
2277 fRec8[0] = ((fRec16[1] + (fRec24[1] + (fRec32[1] + (fRec40[1] + (fRec17 + (fRec25 + fTemp13)))))) - (fRec12[1] + (fRec20[1] + (fRec28[1] + (fRec36[1] + (fRec13 + (fRec21 + fTemp14)))))));
2278 fRec9[0] = ((fRec12[1] + (fRec20[1] + (fRec32[1] + (fRec40[1] + (fRec13 + (fRec21 + fTemp13)))))) - (fRec16[1] + (fRec24[1] + (fRec28[1] + (fRec36[1] + (fRec17 + (fRec25 + fTemp14)))))));
2279 float fTemp15 = (fRec41 + fRec29);
2280 float fTemp16 = (fRec37 + fRec33);
2281 fRec10[0] = ((fRec12[1] + (fRec24[1] + (fRec28[1] + (fRec40[1] + (fRec13 + (fRec25 + fTemp15)))))) - (fRec16[1] + (fRec20[1] + (fRec32[1] + (fRec36[1] + (fRec17 + (fRec21 + fTemp16)))))));
2282 fRec11[0] = ((fRec16[1] + (fRec20[1] + (fRec28[1] + (fRec40[1] + (fRec17 + (fRec21 + fTemp15)))))) - (fRec12[1] + (fRec24[1] + (fRec32[1] + (fRec36[1] + (fRec13 + (fRec25 + fTemp16)))))));
2283 float fTemp17 = (0.370000005f * (fRec5[0] + fRec6[0]));
2284 float fTemp18 = (fSlow89 * fRec3[1]);
2285 fRec3[0] = (fTemp17 - (fTemp18 + (fSlow9 * fRec3[2])));
2286 float fTemp19 = (fSlow9 * fRec3[0]);
2287 float fTemp20 = (0.5f * ((fTemp19 + (fRec3[2] + (fTemp17 + fTemp18))) + (fSlow7 * ((fTemp19 + (fTemp18 + fRec3[2])) - fTemp17))));
2288 float fTemp21 = (fSlow90 * fRec2[1]);
2289 fRec2[0] = (fTemp20 - (fTemp21 + (fSlow5 * fRec2[2])));
2290 float fTemp22 = (fSlow5 * fRec2[0]);
2291 float fTemp23 = (fTemp0 * (1.0f - fRec1[0]));
2292 float fTemp24 = (0.370000005f * (fRec5[0] - fRec6[0]));
2293 float fTemp25 = (fSlow89 * fRec45[1]);
2294 fRec45[0] = (fTemp24 - (fTemp25 + (fSlow9 * fRec45[2])));
2295 float fTemp26 = (fSlow9 * fRec45[0]);
2296 float fTemp27 = (0.5f * ((fTemp26 + (fRec45[2] + (fTemp24 + fTemp25))) + (fSlow7 * ((fTemp26 + (fTemp25 + fRec45[2])) - fTemp24))));
2297 float fTemp28 = (fSlow90 * fRec44[1]);
2298 fRec44[0] = (fTemp27 - (fTemp28 + (fSlow5 * fRec44[2])));
2299 float fTemp29 = (fSlow5 * fRec44[0]);
2300 output0[i] =
FAUSTFLOAT((fRec0[0] * (((0.5f * (fRec1[0] * ((fTemp22 + (fRec2[2] + (fTemp20 + fTemp21))) + (fSlow3 * ((fTemp22 + (fTemp21 + fRec2[2])) - fTemp20))))) + fTemp23) + (fTemp23 + (0.5f * (fRec1[0] * ((fTemp29 + (fRec44[2] + (fTemp27 + fTemp28))) + (fSlow3 * ((fTemp29 + (fTemp28 + fRec44[2])) - fTemp27)))))))));
2302 fRec0[1] = fRec0[0];
2303 fRec1[1] = fRec1[0];
2304 fRec15[1] = fRec15[0];
2305 fRec14[1] = fRec14[0];
2306 fRec12[1] = fRec12[0];
2307 fRec19[1] = fRec19[0];
2308 fRec18[1] = fRec18[0];
2309 fRec16[1] = fRec16[0];
2310 fRec23[1] = fRec23[0];
2311 fRec22[1] = fRec22[0];
2312 fRec20[1] = fRec20[0];
2313 fRec27[1] = fRec27[0];
2314 fRec26[1] = fRec26[0];
2315 fRec24[1] = fRec24[0];
2316 fRec31[1] = fRec31[0];
2317 fRec30[1] = fRec30[0];
2318 fRec28[1] = fRec28[0];
2319 fRec35[1] = fRec35[0];
2320 fRec34[1] = fRec34[0];
2321 fRec32[1] = fRec32[0];
2322 fRec39[1] = fRec39[0];
2323 fRec38[1] = fRec38[0];
2324 fRec36[1] = fRec36[0];
2325 fRec43[1] = fRec43[0];
2326 fRec42[1] = fRec42[0];
2327 fRec40[1] = fRec40[0];
2328 fRec4[2] = fRec4[1];
2329 fRec4[1] = fRec4[0];
2330 fRec5[2] = fRec5[1];
2331 fRec5[1] = fRec5[0];
2332 fRec6[2] = fRec6[1];
2333 fRec6[1] = fRec6[0];
2334 fRec7[2] = fRec7[1];
2335 fRec7[1] = fRec7[0];
2336 fRec8[2] = fRec8[1];
2337 fRec8[1] = fRec8[0];
2338 fRec9[2] = fRec9[1];
2339 fRec9[1] = fRec9[0];
2340 fRec10[2] = fRec10[1];
2341 fRec10[1] = fRec10[0];
2342 fRec11[2] = fRec11[1];
2343 fRec11[1] = fRec11[0];
2344 fRec3[2] = fRec3[1];
2345 fRec3[1] = fRec3[0];
2346 fRec2[2] = fRec2[1];
2347 fRec2[1] = fRec2[0];
2348 fRec45[2] = fRec45[1];
2349 fRec45[1] = fRec45[0];
2350 fRec44[2] = fRec44[1];
2351 fRec44[1] = fRec44[0];