7 #ifndef __limiterdsp_H__
8 #define __limiterdsp_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(),
' ',
'_');
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>
1564 #define FAUSTCLASS limiterdsp
1568 #define exp10f __exp10f
1569 #define exp10 __exp10
1596 m->
declare(
"analyzers.lib/name",
"Faust Analyzer Library");
1597 m->
declare(
"analyzers.lib/version",
"0.1");
1598 m->
declare(
"basics.lib/name",
"Faust Basic Element Library");
1599 m->
declare(
"basics.lib/version",
"0.1");
1600 m->
declare(
"compressors.lib/limiter_lad_N:author",
"Dario Sanfilippo");
1601 m->
declare(
"compressors.lib/limiter_lad_N:copyright",
"Copyright (C) 2020 Dario Sanfilippo <sanfilippo.dario@gmail.com>");
1602 m->
declare(
"compressors.lib/limiter_lad_N:license",
"GPLv3 license");
1603 m->
declare(
"compressors.lib/limiter_lad_mono:author",
"Dario Sanfilippo");
1604 m->
declare(
"compressors.lib/limiter_lad_mono:copyright",
"Copyright (C) 2020 Dario Sanfilippo <sanfilippo.dario@gmail.com>");
1605 m->
declare(
"compressors.lib/limiter_lad_mono:license",
"GPLv3 license");
1606 m->
declare(
"compressors.lib/name",
"Faust Compressor Effect Library");
1607 m->
declare(
"compressors.lib/version",
"0.0");
1608 m->
declare(
"filename",
"limiterdsp.dsp");
1609 m->
declare(
"maths.lib/author",
"GRAME");
1610 m->
declare(
"maths.lib/copyright",
"GRAME");
1611 m->
declare(
"maths.lib/license",
"LGPL with exception");
1612 m->
declare(
"maths.lib/name",
"Faust Math Library");
1613 m->
declare(
"maths.lib/version",
"2.3");
1614 m->
declare(
"name",
"limiterdsp");
1615 m->
declare(
"platform.lib/name",
"Generic Platform Library");
1616 m->
declare(
"platform.lib/version",
"0.1");
1617 m->
declare(
"routes.lib/name",
"Faust Signal Routing Library");
1618 m->
declare(
"routes.lib/version",
"0.2");
1619 m->
declare(
"signals.lib/name",
"Faust Signal Routing Library");
1620 m->
declare(
"signals.lib/version",
"0.0");
1631 switch ((channel)) {
1645 switch ((channel)) {
1662 fSampleRate = sample_rate;
1663 fConst0 = std::min<float>(192000.0f, std::max<float>(1.0f,
float(fSampleRate)));
1664 fConst1 = std::exp((0.0f - (100000.0f / fConst0)));
1665 fConst2 = (1.0f - fConst1);
1666 fConst3 = (0.100000001f * fConst0);
1667 fConst4 = std::exp((0.0f - (4.0f / fConst0)));
1668 fConst5 = (1.0f - fConst4);
1669 iConst6 = int((9.99999975e-05f * fConst0));
1677 for (
int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
1681 for (
int l1 = 0; (l1 < 32); l1 = (l1 + 1)) {
1684 for (
int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
1687 for (
int l3 = 0; (l3 < 2); l3 = (l3 + 1)) {
1690 for (
int l4 = 0; (l4 < 2); l4 = (l4 + 1)) {
1693 for (
int l5 = 0; (l5 < 2); l5 = (l5 + 1)) {
1698 virtual void init(
int sample_rate) {
1718 ui_interface->
declare(&fHslider0,
"0",
"");
1719 ui_interface->
addHorizontalSlider(
"NumClientsAssumed", &fHslider0, 2.0f, 1.0f, 64.0f, 1.0f);
1726 float fSlow0 = (1.0f / std::sqrt(
float(fHslider0)));
1727 for (
int i = 0; (i < count); i = (i + 1)) {
1728 float fTemp0 = float(input0[i]);
1729 iRec5[0] = ((iRec5[1] + 1) %
int(std::max<float>(1.0f, (fConst3 *
float(iRec2[1])))));
1730 float fTemp1 = (fSlow0 * fTemp0);
1731 fVec0[(IOTA & 31)] = fTemp1;
1732 float fTemp2 = std::fabs(fTemp1);
1733 fRec4[0] = std::max<float>((
float((iRec5[0] > 0)) * fRec4[1]), fTemp2);
1734 iRec2[0] = (fRec4[0] >= fTemp2);
1735 float fRec3 = fRec4[0];
1736 fRec1[0] = ((fConst1 * fRec1[1]) + (fConst2 * fRec3));
1737 float fTemp3 = std::fabs(fRec1[0]);
1738 fRec0[0] = std::max<float>(fTemp3, ((fConst4 * fRec0[1]) + (fConst5 * fTemp3)));
1739 output0[i] =
FAUSTFLOAT((std::min<float>(1.0f, (0.5f / std::max<float>(fRec0[0], 1.1920929e-07f))) * fVec0[((IOTA - iConst6) & 31)]));
1740 iRec5[1] = iRec5[0];
1742 fRec4[1] = fRec4[0];
1743 iRec2[1] = iRec2[0];
1744 fRec1[1] = fRec1[0];
1745 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: limiterdsp.h:1484
@ kExp
Definition: compressordsp.h:1038
@ kLin
Definition: compressordsp.h:1038
@ kLog
Definition: compressordsp.h:1038
const char * getMetadata(int p, const char *key)
Definition: limiterdsp.h:1357
void propagateAcc(int acc, double value)
Definition: limiterdsp.h:1418
int getGyrCount(int gyr)
Definition: limiterdsp.h:1522
int getParamsCount()
Definition: limiterdsp.h:1334
virtual void addButton(const char *label, FAUSTFLOAT *zone)
Definition: limiterdsp.h:1259
const char * getParamLabel(int p)
Definition: limiterdsp.h:1346
virtual void closeBox()
Definition: limiterdsp.h:1255
void setParamRatio(int p, double r)
Definition: limiterdsp.h:1371
FAUSTFLOAT getParamInit(int p)
Definition: limiterdsp.h:1364
std::map< std::string, int > fPathMap
Definition: compressordsp.h:1043
int getZoneIndex(std::vector< ZoneControl * > *table, int p, int val)
Definition: limiterdsp.h:1168
double getParamRatio(int p)
Definition: limiterdsp.h:1370
ItemType getParamItemType(int p)
Definition: limiterdsp.h:1406
void getAccConverter(int p, int &acc, int &curve, double &amin, double &amid, double &amax)
Definition: limiterdsp.h:1468
int getParamIndex(const char *path)
Definition: limiterdsp.h:1335
const char * getParamAddress(int p)
Definition: limiterdsp.h:1345
std::vector< FAUSTFLOAT > fMin
Definition: compressordsp.h:1048
double value2ratio(int p, double r)
Definition: limiterdsp.h:1373
virtual void declare(const char *key, const char *val)
Definition: limiterdsp.h:1328
virtual void addParameter(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step, ItemType type)
Definition: limiterdsp.h:1070
virtual void addHorizontalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: limiterdsp.h:1274
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: limiterdsp.h:1302
virtual void addCheckButton(const char *label, FAUSTFLOAT *zone)
Definition: limiterdsp.h:1264
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: limiterdsp.h:1269
void getConverter(std::vector< ZoneControl * > *table, int p, int &val, int &curve, double &amin, double &amid, double &amax)
Definition: limiterdsp.h:1204
virtual void addHorizontalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: limiterdsp.h:1286
virtual void addNumEntry(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: limiterdsp.h:1279
std::vector< std::map< std::string, std::string > > fMetaData
Definition: compressordsp.h:1052
std::map< const char *, const char * > getMetadata(int p)
Definition: limiterdsp.h:1347
int fCurrentScale
Definition: compressordsp.h:1065
virtual ~APIUI()
Definition: limiterdsp.h:1238
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: limiterdsp.h:1177
int getAccCount(int acc)
Definition: limiterdsp.h:1510
void propagateGyr(int gyr, double value)
Definition: limiterdsp.h:1496
virtual void openVerticalBox(const char *label)
Definition: limiterdsp.h:1254
std::string fCurrentGyr
Definition: compressordsp.h:1067
void setParamValue(int p, FAUSTFLOAT v)
Definition: limiterdsp.h:1368
ZoneReader * fBlueReader
Definition: compressordsp.h:1061
FAUSTFLOAT getParamValue(int p)
Definition: limiterdsp.h:1367
virtual void openHorizontalBox(const char *label)
Definition: limiterdsp.h:1253
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: limiterdsp.h:1452
std::string fCurrentUnit
Definition: compressordsp.h:1064
std::vector< ValueConverter * > fConversion
Definition: compressordsp.h:1045
APIUI()
Definition: limiterdsp.h:1235
std::vector< ZoneControl * > fAcc[3]
Definition: compressordsp.h:1053
FAUSTFLOAT getParamStep(int p)
Definition: limiterdsp.h:1363
virtual void addVerticalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: limiterdsp.h:1291
std::map< std::string, int > fLabelMap
Definition: compressordsp.h:1044
virtual void openTabBox(const char *label)
Definition: limiterdsp.h:1252
double ratio2value(int p, double r)
Definition: limiterdsp.h:1374
FAUSTFLOAT getParamMin(int p)
Definition: limiterdsp.h:1361
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: limiterdsp.h:1366
int getScreenColor()
Definition: limiterdsp.h:1529
FAUSTFLOAT getParamMax(int p)
Definition: limiterdsp.h:1362
Type getParamType(int p)
Definition: limiterdsp.h:1383
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)
Definition: limiterdsp.h:1298
void setAccConverter(int p, int acc, int curve, double amin, double amid, double amax)
Definition: limiterdsp.h:1436
Definition: compressordsp.h:802
AccDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:808
virtual double faust2ui(double x)
Definition: limiterdsp.h:814
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:823
virtual double ui2faust(double x)
Definition: limiterdsp.h:813
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:816
Definition: compressordsp.h:872
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:893
virtual double faust2ui(double x)
Definition: limiterdsp.h:884
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:886
virtual double ui2faust(double x)
Definition: limiterdsp.h:883
AccDownUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:878
Definition: compressordsp.h:766
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:780
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:787
virtual double faust2ui(double x)
Definition: limiterdsp.h:778
AccUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:772
virtual double ui2faust(double x)
Definition: limiterdsp.h:777
Definition: compressordsp.h:837
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:858
AccUpDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:843
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:851
virtual double faust2ui(double x)
Definition: limiterdsp.h:849
virtual double ui2faust(double x)
Definition: limiterdsp.h:848
Definition: compressordsp.h:935
ConverterZoneControl(FAUSTFLOAT *zone, ValueConverter *converter)
Definition: limiterdsp.h:940
ValueConverter * fValueConverter
Definition: compressordsp.h:939
virtual void update(double v) const
Definition: limiterdsp.h:943
ValueConverter * getConverter()
Definition: limiterdsp.h:945
virtual ~ConverterZoneControl()
Definition: limiterdsp.h:941
Definition: compressordsp.h:957
void setActive(bool on_off)
Definition: limiterdsp.h:992
void update(double v) const
Definition: limiterdsp.h:979
void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:981
void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:987
virtual ~CurveZoneControl()
Definition: limiterdsp.h:972
CurveZoneControl(FAUSTFLOAT *zone, int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:963
int getCurve()
Definition: limiterdsp.h:1000
Definition: compressordsp.h:748
ExpValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:749
virtual double ui2faust(double x)
Definition: limiterdsp.h:753
virtual double faust2ui(double x)
Definition: limiterdsp.h:754
Definition: compressordsp.h:605
double operator()(double x)
Definition: limiterdsp.h:616
Interpolator3pt(double lo, double mi, double hi, double v1, double vm, double v2)
Definition: limiterdsp.h:612
void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:618
Definition: compressordsp.h:553
void getLowHigh(double &amin, double &amax)
Definition: limiterdsp.h:590
Interpolator(double lo, double hi, double v1, double v2)
Definition: limiterdsp.h:572
double operator()(double v)
Definition: compressordsp.h:587
Definition: compressordsp.h:695
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:717
LinearValueConverter2(double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:701
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:711
virtual double faust2ui(double x)
Definition: limiterdsp.h:709
LinearValueConverter2()
Definition: limiterdsp.h:705
virtual double ui2faust(double x)
Definition: limiterdsp.h:708
Definition: compressordsp.h:671
virtual double faust2ui(double x)
Definition: limiterdsp.h:684
LinearValueConverter()
Definition: limiterdsp.h:681
virtual double ui2faust(double x)
Definition: limiterdsp.h:683
LinearValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:677
Definition: compressordsp.h:731
virtual double ui2faust(double x)
Definition: limiterdsp.h:736
LogValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:732
virtual double faust2ui(double x)
Definition: limiterdsp.h:737
Definition: compressordsp.h:431
PathBuilder()
Definition: limiterdsp.h:436
std::vector< std::string > fControlsLevel
Definition: compressordsp.h:435
void pushLabel(const std::string &label)
Definition: limiterdsp.h:457
std::string buildLabel(std::string label)
Definition: limiterdsp.h:451
void popLabel()
Definition: limiterdsp.h:458
virtual ~PathBuilder()
Definition: limiterdsp.h:437
std::string buildPath(const std::string &label)
Definition: limiterdsp.h:439
Definition: compressordsp.h:645
bool getActive()
Definition: limiterdsp.h:659
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)=0
virtual ~UpdatableValueConverter()
Definition: limiterdsp.h:652
UpdatableValueConverter()
Definition: limiterdsp.h:650
virtual void getMappingValues(double &amin, double &amid, double &amax)=0
void setActive(bool on_off)
Definition: limiterdsp.h:658
bool fActive
Definition: compressordsp.h:649
Definition: compressordsp.h:632
virtual ~ValueConverter()
Definition: limiterdsp.h:633
virtual double ui2faust(double x)=0
virtual double faust2ui(double x)=0
Definition: compressordsp.h:906
virtual int getCurve()
Definition: limiterdsp.h:924
ZoneControl(FAUSTFLOAT *zone)
Definition: limiterdsp.h:911
virtual void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:916
virtual bool getActive()
Definition: limiterdsp.h:922
FAUSTFLOAT * fZone
Definition: compressordsp.h:910
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:917
virtual ~ZoneControl()
Definition: limiterdsp.h:912
virtual void update(double v) const
Definition: limiterdsp.h:914
virtual void setActive(bool on_off)
Definition: limiterdsp.h:921
FAUSTFLOAT * getZone()
Definition: limiterdsp.h:919
Definition: compressordsp.h:1007
int getValue()
Definition: limiterdsp.h:1017
ZoneReader(FAUSTFLOAT *zone, double lo, double hi)
Definition: limiterdsp.h:1013
virtual ~ZoneReader()
Definition: limiterdsp.h:1015
Definition: compressordsp.h:168
virtual void init(int sample_rate)
Definition: limiterdsp.h:180
virtual void buildUserInterface(UI *ui_interface)
Definition: limiterdsp.h:178
virtual void instanceConstants(int sample_rate)
Definition: limiterdsp.h:182
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:188
decorator_dsp(dsp *dsp=nullptr)
Definition: limiterdsp.h:173
virtual void instanceResetUserInterface()
Definition: limiterdsp.h:183
virtual int getNumOutputs()
Definition: limiterdsp.h:177
virtual void compute(double date_usec, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:189
virtual void instanceInit(int sample_rate)
Definition: limiterdsp.h:181
virtual decorator_dsp * clone()
Definition: limiterdsp.h:185
virtual int getSampleRate()
Definition: limiterdsp.h:179
dsp * fDSP
Definition: compressordsp.h:172
virtual void instanceClear()
Definition: limiterdsp.h:184
virtual ~decorator_dsp()
Definition: limiterdsp.h:174
virtual int getNumInputs()
Definition: limiterdsp.h:176
virtual void metadata(Meta *m)
Definition: limiterdsp.h:186
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: limiterdsp.h:202
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: limiterdsp.h:157
virtual void instanceInit(int sample_rate)=0
virtual ~dsp()
Definition: limiterdsp.h:76
dsp()
Definition: limiterdsp.h:75
virtual void buildUserInterface(UI *ui_interface)=0
virtual int getSampleRate()=0
virtual void metadata(Meta *m)=0
Definition: limiterdsp.h:1572
virtual void instanceResetUserInterface()
Definition: limiterdsp.h:1672
virtual limiterdsp * clone()
Definition: limiterdsp.h:1708
virtual void instanceConstants(int sample_rate)
Definition: limiterdsp.h:1661
void metadata(Meta *m)
Definition: limiterdsp.h:1595
virtual void instanceInit(int sample_rate)
Definition: limiterdsp.h:1702
virtual int getOutputRate(int channel)
Definition: limiterdsp.h:1643
virtual int getNumInputs()
Definition: limiterdsp.h:1623
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:1723
virtual void buildUserInterface(UI *ui_interface)
Definition: limiterdsp.h:1716
virtual int getSampleRate()
Definition: limiterdsp.h:1712
virtual int getNumOutputs()
Definition: limiterdsp.h:1626
virtual int getInputRate(int channel)
Definition: limiterdsp.h:1629
virtual void init(int sample_rate)
Definition: limiterdsp.h:1698
virtual void instanceClear()
Definition: limiterdsp.h:1676
static void classInit(int sample_rate)
Definition: limiterdsp.h:1658
#define FAUSTFLOAT
Definition: limiterdsp.h:48
Definition: compressordsp.h:387
virtual ~UI()
Definition: limiterdsp.h:386
UI()
Definition: limiterdsp.h:385
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: limiterdsp.h:351
virtual void declare(REAL *zone, const char *key, const char *val)
Definition: limiterdsp.h:380
virtual void addButton(const char *label, REAL *zone)=0
virtual void openTabBox(const char *label)=0
virtual void closeBox()=0
virtual ~UIReal()
Definition: limiterdsp.h:352
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: limiterdsp.h:60
virtual void * allocate(size_t size)=0
virtual void destroy(void *ptr)=0