10 #ifndef __compressordsp_H__
11 #define __compressordsp_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) {}
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;
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 compressordsp
1571 #define exp10f __exp10f
1572 #define exp10 __exp10
1598 m->
declare(
"analyzers.lib/name",
"Faust Analyzer Library");
1599 m->
declare(
"analyzers.lib/version",
"0.1");
1600 m->
declare(
"author",
"Julius Smith");
1601 m->
declare(
"basics.lib/name",
"Faust Basic Element Library");
1602 m->
declare(
"basics.lib/version",
"0.1");
1603 m->
declare(
"compressors.lib/compression_gain_mono:author",
"Julius O. Smith III");
1604 m->
declare(
"compressors.lib/compression_gain_mono:copyright",
"Copyright (C) 2014-2020 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1605 m->
declare(
"compressors.lib/compression_gain_mono:license",
"MIT-style STK-4.3 license");
1606 m->
declare(
"compressors.lib/compressor_lad_mono:author",
"Julius O. Smith III");
1607 m->
declare(
"compressors.lib/compressor_lad_mono:copyright",
"Copyright (C) 2014-2020 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1608 m->
declare(
"compressors.lib/compressor_lad_mono:license",
"MIT-style STK-4.3 license");
1609 m->
declare(
"compressors.lib/compressor_mono:author",
"Julius O. Smith III");
1610 m->
declare(
"compressors.lib/compressor_mono:copyright",
"Copyright (C) 2014-2020 by Julius O. Smith III <jos@ccrma.stanford.edu>");
1611 m->
declare(
"compressors.lib/compressor_mono:license",
"MIT-style STK-4.3 license");
1612 m->
declare(
"compressors.lib/name",
"Faust Compressor Effect Library");
1613 m->
declare(
"compressors.lib/version",
"0.0");
1614 m->
declare(
"description",
"Compressor demo application, adapted from the Faust Library's dm.compressor_demo in demos.lib");
1615 m->
declare(
"documentation",
"https://faustlibraries.grame.fr/libs/compressors/#cocompressor_mono");
1616 m->
declare(
"filename",
"compressordsp.dsp");
1617 m->
declare(
"license",
"MIT Style STK-4.2");
1618 m->
declare(
"maths.lib/author",
"GRAME");
1619 m->
declare(
"maths.lib/copyright",
"GRAME");
1620 m->
declare(
"maths.lib/license",
"LGPL with exception");
1621 m->
declare(
"maths.lib/name",
"Faust Math Library");
1622 m->
declare(
"maths.lib/version",
"2.3");
1623 m->
declare(
"name",
"compressor");
1624 m->
declare(
"platform.lib/name",
"Generic Platform Library");
1625 m->
declare(
"platform.lib/version",
"0.1");
1626 m->
declare(
"signals.lib/name",
"Faust Signal Routing Library");
1627 m->
declare(
"signals.lib/version",
"0.0");
1639 switch ((channel)) {
1653 switch ((channel)) {
1670 fSampleRate = sample_rate;
1671 fConst0 = (1.0f / std::min<float>(192000.0f, std::max<float>(1.0f,
float(fSampleRate))));
1684 for (
int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
1687 for (
int l1 = 0; (l1 < 2); l1 = (l1 + 1)) {
1690 for (
int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
1693 for (
int l3 = 0; (l3 < 2); l3 = (l3 + 1)) {
1696 for (
int l4 = 0; (l4 < 2); l4 = (l4 + 1)) {
1699 for (
int l5 = 0; (l5 < 2); l5 = (l5 + 1)) {
1704 virtual void init(
int sample_rate) {
1723 ui_interface->
declare(0,
"tooltip",
"References: https://faustlibraries.grame.fr/libs/compressors/ http://en.wikipedia.org/wiki/Dynamic_range_compression");
1725 ui_interface->
declare(0,
"0",
"");
1727 ui_interface->
declare(&fCheckbox0,
"0",
"");
1728 ui_interface->
declare(&fCheckbox0,
"tooltip",
"When this is checked, the compressor has no effect");
1730 ui_interface->
declare(&fHbargraph0,
"1",
"");
1731 ui_interface->
declare(&fHbargraph0,
"tooltip",
"Compressor gain in dB");
1732 ui_interface->
declare(&fHbargraph0,
"unit",
"dB");
1735 ui_interface->
declare(0,
"1",
"");
1737 ui_interface->
declare(0,
"3",
"");
1739 ui_interface->
declare(&fHslider2,
"0",
"");
1740 ui_interface->
declare(&fHslider2,
"style",
"knob");
1741 ui_interface->
declare(&fHslider2,
"tooltip",
"A compression Ratio of N means that for each N dB increase in input signal level above Threshold, the output level goes up 1 dB");
1743 ui_interface->
declare(&fHslider4,
"1",
"");
1744 ui_interface->
declare(&fHslider4,
"style",
"knob");
1745 ui_interface->
declare(&fHslider4,
"tooltip",
"When the signal level exceeds the Threshold (in dB), its level is compressed according to the Ratio");
1746 ui_interface->
declare(&fHslider4,
"unit",
"dB");
1747 ui_interface->
addHorizontalSlider(
"Threshold", &fHslider4, -24.0f, -100.0f, 10.0f, 0.100000001f);
1749 ui_interface->
declare(0,
"4",
"");
1751 ui_interface->
declare(&fHslider1,
"1",
"");
1752 ui_interface->
declare(&fHslider1,
"scale",
"log");
1753 ui_interface->
declare(&fHslider1,
"style",
"knob");
1754 ui_interface->
declare(&fHslider1,
"tooltip",
"Time constant in ms (1/e smoothing time) for the compression gain to approach (exponentially) a new lower target level (the compression `kicking in')");
1755 ui_interface->
declare(&fHslider1,
"unit",
"ms");
1756 ui_interface->
addHorizontalSlider(
"Attack", &fHslider1, 15.0f, 1.0f, 1000.0f, 0.100000001f);
1757 ui_interface->
declare(&fHslider3,
"2",
"");
1758 ui_interface->
declare(&fHslider3,
"scale",
"log");
1759 ui_interface->
declare(&fHslider3,
"style",
"knob");
1760 ui_interface->
declare(&fHslider3,
"tooltip",
"Time constant in ms (1/e smoothing time) for the compression gain to approach (exponentially) a new higher target level (the compression 'releasing')");
1761 ui_interface->
declare(&fHslider3,
"unit",
"ms");
1762 ui_interface->
addHorizontalSlider(
"Release", &fHslider3, 40.0f, 1.0f, 1000.0f, 0.100000001f);
1765 ui_interface->
declare(&fHslider0,
"5",
"");
1766 ui_interface->
declare(&fHslider0,
"tooltip",
"The compressed-signal output level is increased by this amount (in dB) to make up for the level lost due to compression");
1767 ui_interface->
declare(&fHslider0,
"unit",
"dB");
1768 ui_interface->
addHorizontalSlider(
"MakeUpGain", &fHslider0, 2.0f, -96.0f, 96.0f, 0.100000001f);
1775 int iSlow0 = int(
float(fCheckbox0));
1776 float fSlow1 = std::pow(10.0f, (0.0500000007f *
float(fHslider0)));
1777 float fSlow2 = std::max<float>(fConst0, (0.00100000005f *
float(fHslider1)));
1778 float fSlow3 = (0.5f * fSlow2);
1779 int iSlow4 = (std::fabs(fSlow3) < 1.1920929e-07f);
1780 float fSlow5 = (iSlow4 ? 0.0f : std::exp((0.0f - (fConst0 / (iSlow4 ? 1.0f : fSlow3)))));
1781 float fSlow6 = ((1.0f / std::max<float>(1.00000001e-07f,
float(fHslider2))) + -1.0f);
1782 int iSlow7 = (std::fabs(fSlow2) < 1.1920929e-07f);
1783 float fSlow8 = (iSlow7 ? 0.0f : std::exp((0.0f - (fConst0 / (iSlow7 ? 1.0f : fSlow2)))));
1784 float fSlow9 = std::max<float>(fConst0, (0.00100000005f *
float(fHslider3)));
1785 int iSlow10 = (std::fabs(fSlow9) < 1.1920929e-07f);
1786 float fSlow11 = (iSlow10 ? 0.0f : std::exp((0.0f - (fConst0 / (iSlow10 ? 1.0f : fSlow9)))));
1787 float fSlow12 = float(fHslider4);
1788 float fSlow13 = (1.0f - fSlow5);
1789 for (
int i = 0; (i < count); i = (i + 1)) {
1790 float fTemp0 = float(input0[i]);
1791 float fTemp1 = (iSlow0 ? 0.0f : fTemp0);
1792 float fTemp2 = std::fabs(fTemp1);
1793 float fTemp3 = ((fRec4[1] > fTemp2) ? fSlow11 : fSlow8);
1794 fRec5[0] = ((fRec5[1] * fTemp3) + (fTemp2 * (1.0f - fTemp3)));
1795 fRec4[0] = fRec5[0];
1796 fRec3[0] = ((fRec3[1] * fSlow5) + (fSlow6 * (std::max<float>(((20.0f * std::log10(fRec4[0])) - fSlow12), 0.0f) * fSlow13)));
1797 float fTemp4 = (fTemp1 * std::pow(10.0f, (0.0500000007f * fRec3[0])));
1798 float fTemp5 = std::fabs(fTemp4);
1799 float fTemp6 = ((fRec1[1] > fTemp5) ? fSlow11 : fSlow8);
1800 fRec2[0] = ((fRec2[1] * fTemp6) + (fTemp5 * (1.0f - fTemp6)));
1801 fRec1[0] = fRec2[0];
1802 fRec0[0] = ((fSlow5 * fRec0[1]) + (fSlow6 * (std::max<float>(((20.0f * std::log10(fRec1[0])) - fSlow12), 0.0f) * fSlow13)));
1803 fHbargraph0 =
FAUSTFLOAT((20.0f * std::log10(std::pow(10.0f, (0.0500000007f * fRec0[0])))));
1804 output0[i] =
FAUSTFLOAT((iSlow0 ? fTemp0 : (fSlow1 * fTemp4)));
1805 fRec5[1] = fRec5[0];
1806 fRec4[1] = fRec4[0];
1807 fRec3[1] = fRec3[0];
1808 fRec2[1] = fRec2[0];
1809 fRec1[1] = fRec1[0];
1810 fRec0[1] = fRec0[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: compressordsp.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: compressordsp.h:1360
void propagateAcc(int acc, double value)
Definition: compressordsp.h:1421
int getGyrCount(int gyr)
Definition: compressordsp.h:1525
int getParamsCount()
Definition: compressordsp.h:1337
virtual void addButton(const char *label, FAUSTFLOAT *zone)
Definition: compressordsp.h:1262
const char * getParamLabel(int p)
Definition: compressordsp.h:1349
virtual void closeBox()
Definition: compressordsp.h:1258
void setParamRatio(int p, double r)
Definition: compressordsp.h:1374
FAUSTFLOAT getParamInit(int p)
Definition: compressordsp.h:1367
std::map< std::string, int > fPathMap
Definition: compressordsp.h:1043
int getZoneIndex(std::vector< ZoneControl * > *table, int p, int val)
Definition: compressordsp.h:1171
double getParamRatio(int p)
Definition: compressordsp.h:1373
ItemType getParamItemType(int p)
Definition: compressordsp.h:1409
void getAccConverter(int p, int &acc, int &curve, double &amin, double &amid, double &amax)
Definition: compressordsp.h:1471
int getParamIndex(const char *path)
Definition: compressordsp.h:1338
const char * getParamAddress(int p)
Definition: compressordsp.h:1348
std::vector< FAUSTFLOAT > fMin
Definition: compressordsp.h:1048
double value2ratio(int p, double r)
Definition: compressordsp.h:1376
virtual void declare(const char *key, const char *val)
Definition: compressordsp.h:1331
virtual void addParameter(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step, ItemType type)
Definition: compressordsp.h:1073
virtual void addHorizontalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: compressordsp.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: compressordsp.h:1305
virtual void addCheckButton(const char *label, FAUSTFLOAT *zone)
Definition: compressordsp.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: compressordsp.h:1272
void getConverter(std::vector< ZoneControl * > *table, int p, int &val, int &curve, double &amin, double &amid, double &amax)
Definition: compressordsp.h:1207
virtual void addHorizontalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: compressordsp.h:1289
virtual void addNumEntry(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: compressordsp.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: compressordsp.h:1350
int fCurrentScale
Definition: compressordsp.h:1065
virtual ~APIUI()
Definition: compressordsp.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: compressordsp.h:1180
int getAccCount(int acc)
Definition: compressordsp.h:1513
void propagateGyr(int gyr, double value)
Definition: compressordsp.h:1499
virtual void openVerticalBox(const char *label)
Definition: compressordsp.h:1257
std::string fCurrentGyr
Definition: compressordsp.h:1067
void setParamValue(int p, FAUSTFLOAT v)
Definition: compressordsp.h:1371
ZoneReader * fBlueReader
Definition: compressordsp.h:1061
FAUSTFLOAT getParamValue(int p)
Definition: compressordsp.h:1370
virtual void openHorizontalBox(const char *label)
Definition: compressordsp.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: compressordsp.h:1455
std::string fCurrentUnit
Definition: compressordsp.h:1064
std::vector< ValueConverter * > fConversion
Definition: compressordsp.h:1045
APIUI()
Definition: compressordsp.h:1238
std::vector< ZoneControl * > fAcc[3]
Definition: compressordsp.h:1053
FAUSTFLOAT getParamStep(int p)
Definition: compressordsp.h:1366
virtual void addVerticalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: compressordsp.h:1294
std::map< std::string, int > fLabelMap
Definition: compressordsp.h:1044
virtual void openTabBox(const char *label)
Definition: compressordsp.h:1255
double ratio2value(int p, double r)
Definition: compressordsp.h:1377
FAUSTFLOAT getParamMin(int p)
Definition: compressordsp.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: compressordsp.h:1369
int getScreenColor()
Definition: compressordsp.h:1532
FAUSTFLOAT getParamMax(int p)
Definition: compressordsp.h:1365
Type getParamType(int p)
Definition: compressordsp.h:1386
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)
Definition: compressordsp.h:1301
void setAccConverter(int p, int acc, int curve, double amin, double amid, double amax)
Definition: compressordsp.h:1439
Definition: compressordsp.h:802
AccDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:811
virtual double faust2ui(double x)
Definition: compressordsp.h:817
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:826
virtual double ui2faust(double x)
Definition: compressordsp.h:816
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:819
Definition: compressordsp.h:872
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:896
virtual double faust2ui(double x)
Definition: compressordsp.h:887
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:889
virtual double ui2faust(double x)
Definition: compressordsp.h:886
AccDownUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:881
Definition: compressordsp.h:766
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:783
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:790
virtual double faust2ui(double x)
Definition: compressordsp.h:781
AccUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:775
virtual double ui2faust(double x)
Definition: compressordsp.h:780
Definition: compressordsp.h:837
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:861
AccUpDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:846
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: compressordsp.h:854
virtual double faust2ui(double x)
Definition: compressordsp.h:852
virtual double ui2faust(double x)
Definition: compressordsp.h:851
Definition: compressordsp.h:935
ConverterZoneControl(FAUSTFLOAT *zone, ValueConverter *converter)
Definition: compressordsp.h:943
ValueConverter * fValueConverter
Definition: compressordsp.h:939
virtual void update(double v) const
Definition: compressordsp.h:946
ValueConverter * getConverter()
Definition: compressordsp.h:948
virtual ~ConverterZoneControl()
Definition: compressordsp.h:944
Definition: compressordsp.h:957
void setActive(bool on_off)
Definition: compressordsp.h:995
void update(double v) const
Definition: compressordsp.h:982
void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: compressordsp.h:984
void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:990
virtual ~CurveZoneControl()
Definition: compressordsp.h:975
CurveZoneControl(FAUSTFLOAT *zone, int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: compressordsp.h:966
int getCurve()
Definition: compressordsp.h:1003
Definition: compressordsp.h:748
ExpValueConverter(double umin, double umax, double fmin, double fmax)
Definition: compressordsp.h:752
virtual double ui2faust(double x)
Definition: compressordsp.h:756
virtual double faust2ui(double x)
Definition: compressordsp.h:757
Definition: compressordsp.h:605
double operator()(double x)
Definition: compressordsp.h:619
Interpolator3pt(double lo, double mi, double hi, double v1, double vm, double v2)
Definition: compressordsp.h:615
void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:621
Definition: compressordsp.h:553
void getLowHigh(double &amin, double &amax)
Definition: compressordsp.h:593
Interpolator(double lo, double hi, double v1, double v2)
Definition: compressordsp.h:575
double operator()(double v)
Definition: compressordsp.h:587
Definition: compressordsp.h:695
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:720
LinearValueConverter2(double amin, double amid, double amax, double min, double init, double max)
Definition: compressordsp.h:704
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)
Definition: compressordsp.h:714
virtual double faust2ui(double x)
Definition: compressordsp.h:712
LinearValueConverter2()
Definition: compressordsp.h:708
virtual double ui2faust(double x)
Definition: compressordsp.h:711
Definition: compressordsp.h:671
virtual double faust2ui(double x)
Definition: compressordsp.h:687
LinearValueConverter()
Definition: compressordsp.h:684
virtual double ui2faust(double x)
Definition: compressordsp.h:686
LinearValueConverter(double umin, double umax, double fmin, double fmax)
Definition: compressordsp.h:680
Definition: compressordsp.h:731
virtual double ui2faust(double x)
Definition: compressordsp.h:739
LogValueConverter(double umin, double umax, double fmin, double fmax)
Definition: compressordsp.h:735
virtual double faust2ui(double x)
Definition: compressordsp.h:740
Definition: compressordsp.h:431
PathBuilder()
Definition: compressordsp.h:439
std::vector< std::string > fControlsLevel
Definition: compressordsp.h:435
void pushLabel(const std::string &label)
Definition: compressordsp.h:460
std::string buildLabel(std::string label)
Definition: compressordsp.h:454
void popLabel()
Definition: compressordsp.h:461
virtual ~PathBuilder()
Definition: compressordsp.h:440
std::string buildPath(const std::string &label)
Definition: compressordsp.h:442
Definition: compressordsp.h:645
bool getActive()
Definition: compressordsp.h:662
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)=0
virtual ~UpdatableValueConverter()
Definition: compressordsp.h:655
UpdatableValueConverter()
Definition: compressordsp.h:653
virtual void getMappingValues(double &amin, double &amid, double &amax)=0
void setActive(bool on_off)
Definition: compressordsp.h:661
bool fActive
Definition: compressordsp.h:649
Definition: compressordsp.h:632
virtual ~ValueConverter()
Definition: compressordsp.h:636
virtual double ui2faust(double x)=0
virtual double faust2ui(double x)=0
Definition: compressordsp.h:906
virtual int getCurve()
Definition: compressordsp.h:927
ZoneControl(FAUSTFLOAT *zone)
Definition: compressordsp.h:914
virtual void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: compressordsp.h:919
virtual bool getActive()
Definition: compressordsp.h:925
FAUSTFLOAT * fZone
Definition: compressordsp.h:910
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: compressordsp.h:920
virtual ~ZoneControl()
Definition: compressordsp.h:915
virtual void update(double v) const
Definition: compressordsp.h:917
virtual void setActive(bool on_off)
Definition: compressordsp.h:924
FAUSTFLOAT * getZone()
Definition: compressordsp.h:922
Definition: compressordsp.h:1007
int getValue()
Definition: compressordsp.h:1020
ZoneReader(FAUSTFLOAT *zone, double lo, double hi)
Definition: compressordsp.h:1016
virtual ~ZoneReader()
Definition: compressordsp.h:1018
Definition: compressordsp.h:1575
void metadata(Meta *m)
Definition: compressordsp.h:1597
virtual int getSampleRate()
Definition: compressordsp.h:1718
virtual int getNumOutputs()
Definition: compressordsp.h:1634
virtual int getNumInputs()
Definition: compressordsp.h:1631
virtual int getInputRate(int channel)
Definition: compressordsp.h:1637
virtual void init(int sample_rate)
Definition: compressordsp.h:1704
virtual void instanceResetUserInterface()
Definition: compressordsp.h:1674
static void classInit(int sample_rate)
Definition: compressordsp.h:1666
virtual int getOutputRate(int channel)
Definition: compressordsp.h:1651
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: compressordsp.h:1772
virtual void instanceConstants(int sample_rate)
Definition: compressordsp.h:1669
virtual void buildUserInterface(UI *ui_interface)
Definition: compressordsp.h:1722
virtual compressordsp * clone()
Definition: compressordsp.h:1714
virtual void instanceInit(int sample_rate)
Definition: compressordsp.h:1708
virtual void instanceClear()
Definition: compressordsp.h:1683
Definition: compressordsp.h:168
virtual void init(int sample_rate)
Definition: compressordsp.h:183
virtual void buildUserInterface(UI *ui_interface)
Definition: compressordsp.h:181
virtual void instanceConstants(int sample_rate)
Definition: compressordsp.h:185
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: compressordsp.h:191
decorator_dsp(dsp *dsp=nullptr)
Definition: compressordsp.h:176
virtual void instanceResetUserInterface()
Definition: compressordsp.h:186
virtual int getNumOutputs()
Definition: compressordsp.h:180
virtual void compute(double date_usec, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: compressordsp.h:192
virtual void instanceInit(int sample_rate)
Definition: compressordsp.h:184
virtual decorator_dsp * clone()
Definition: compressordsp.h:188
virtual int getSampleRate()
Definition: compressordsp.h:182
dsp * fDSP
Definition: compressordsp.h:172
virtual void instanceClear()
Definition: compressordsp.h:187
virtual ~decorator_dsp()
Definition: compressordsp.h:177
virtual int getNumInputs()
Definition: compressordsp.h:179
virtual void metadata(Meta *m)
Definition: compressordsp.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: compressordsp.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: compressordsp.h:160
virtual void instanceInit(int sample_rate)=0
virtual ~dsp()
Definition: compressordsp.h:79
dsp()
Definition: compressordsp.h:78
virtual void buildUserInterface(UI *ui_interface)=0
virtual int getSampleRate()=0
virtual void metadata(Meta *m)=0
#define FAUSTFLOAT
Definition: compressordsp.h:51
Definition: compressordsp.h:387
virtual ~UI()
Definition: compressordsp.h:389
UI()
Definition: compressordsp.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: compressordsp.h:354
virtual void declare(REAL *zone, const char *key, const char *val)
Definition: compressordsp.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: compressordsp.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: compressordsp.h:63
virtual void * allocate(size_t size)=0
virtual void destroy(void *ptr)=0