Go to the documentation of this file.
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(),
' ',
'_');
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>
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];
#define FAUSTFLOAT
Definition: limiterdsp.h:48
virtual ~ZoneReader()
Definition: limiterdsp.h:1015
std::vector< ZoneControl * > fGyr[3]
Definition: compressordsp.h:1054
AccUpDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:843
Definition: compressordsp.h:766
Definition: limiterdsp.h:1572
FAUSTFLOAT getParamInit(int p)
Definition: limiterdsp.h:1364
virtual void * allocate(size_t size)=0
virtual bool getActive()
Definition: limiterdsp.h:922
void pushLabel(const std::string &label)
Definition: limiterdsp.h:457
virtual ~ValueConverter()
Definition: limiterdsp.h:633
virtual void buildUserInterface(UI *ui_interface)
Definition: limiterdsp.h:178
virtual void compute(double date_usec, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:189
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)=0
Definition: compressordsp.h:553
void setAccConverter(int p, int acc, int curve, double amin, double amid, double amax)
Definition: limiterdsp.h:1436
virtual ~UIReal()
Definition: limiterdsp.h:352
Interpolator(double lo, double hi, double v1, double v2)
Definition: limiterdsp.h:572
void propagateGyr(int gyr, double value)
Definition: limiterdsp.h:1496
Type
Definition: compressordsp.h:1236
Definition: compressordsp.h:605
virtual int getInputRate(int channel)
Definition: limiterdsp.h:1629
@ kAcc
Definition: compressordsp.h:1236
virtual std::string getDSPCode()=0
@ kHBargraph
Definition: compressordsp.h:1034
std::vector< std::string > fLabels
Definition: compressordsp.h:1042
LinearValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:677
virtual void openHorizontalBox(const char *label)
Definition: limiterdsp.h:1253
std::string fCurrentColor
Definition: compressordsp.h:1068
virtual void instanceClear()
Definition: limiterdsp.h:184
int getParamIndex(const char *path)
Definition: limiterdsp.h:1335
ZoneReader * fRedReader
Definition: compressordsp.h:1059
Definition: compressordsp.h:645
virtual ~UI()
Definition: limiterdsp.h:386
virtual void instanceResetUserInterface()=0
decorator_dsp(dsp *dsp=nullptr)
Definition: limiterdsp.h:173
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:711
virtual void instanceResetUserInterface()
Definition: limiterdsp.h:183
virtual double ui2faust(double x)
Definition: limiterdsp.h:848
ZoneControl(FAUSTFLOAT *zone)
Definition: limiterdsp.h:911
LinearValueConverter()
Definition: limiterdsp.h:681
void getGyrConverter(int p, int &gyr, int &curve, double &amin, double &amid, double &amax)
Definition: limiterdsp.h:1484
virtual void compute(double, int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:157
virtual void init(int sample_rate)
Definition: limiterdsp.h:180
int getZoneIndex(std::vector< ZoneControl * > *table, int p, int val)
Definition: limiterdsp.h:1168
virtual ~APIUI()
Definition: limiterdsp.h:1238
Definition: compressordsp.h:837
UI()
Definition: limiterdsp.h:385
int getScreenColor()
Definition: limiterdsp.h:1529
virtual void addNumEntry(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: limiterdsp.h:1279
virtual void addParameter(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step, ItemType type)
Definition: limiterdsp.h:1070
std::vector< std::map< std::string, std::string > > fMetaData
Definition: compressordsp.h:1052
dsp * fDSP
Definition: compressordsp.h:172
Definition: compressordsp.h:695
virtual double ui2faust(double x)
Definition: limiterdsp.h:736
ItemType
Definition: compressordsp.h:1034
virtual double faust2ui(double x)=0
virtual void addVerticalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
virtual int getSampleRate()
Definition: limiterdsp.h:1712
virtual void openTabBox(const char *label)=0
virtual void instanceConstants(int sample_rate)
Definition: limiterdsp.h:1661
@ kExp
Definition: compressordsp.h:1038
ZoneReader(FAUSTFLOAT *zone, double lo, double hi)
Definition: limiterdsp.h:1013
virtual decorator_dsp * clone()
Definition: limiterdsp.h:185
virtual void declare(REAL *zone, const char *key, const char *val)
Definition: limiterdsp.h:380
AccDownConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:808
std::vector< ValueConverter * > fConversion
Definition: compressordsp.h:1045
std::vector< std::string > fPaths
Definition: compressordsp.h:1041
virtual double faust2ui(double x)
Definition: limiterdsp.h:884
virtual void getMappingValues(double &amin, double &amid, double &amax)=0
virtual ~CurveZoneControl()
Definition: limiterdsp.h:972
FAUSTFLOAT * getZone()
Definition: limiterdsp.h:919
virtual int getNumInputs()
Definition: limiterdsp.h:1623
virtual void addHorizontalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
virtual void init(int sample_rate)
Definition: limiterdsp.h:1698
void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:618
ZoneReader * fGreenReader
Definition: compressordsp.h:1060
virtual void instanceInit(int sample_rate)
Definition: limiterdsp.h:1702
virtual void setMemoryManager(dsp_memory_manager *manager)=0
virtual void buildUserInterface(UI *ui_interface)=0
virtual void addCheckButton(const char *label, FAUSTFLOAT *zone)
Definition: limiterdsp.h:1264
Definition: compressordsp.h:200
virtual std::string getCompileOptions()=0
virtual double faust2ui(double x)
Definition: limiterdsp.h:684
virtual double faust2ui(double x)
Definition: limiterdsp.h:737
std::vector< ZoneControl * > fAcc[3]
Definition: compressordsp.h:1053
virtual void closeBox()=0
std::vector< std::string > fControlsLevel
Definition: compressordsp.h:435
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:886
virtual double ui2faust(double x)
Definition: limiterdsp.h:753
virtual void instanceConstants(int sample_rate)=0
int getGyrCount(int gyr)
Definition: limiterdsp.h:1522
void setConverter(std::vector< ZoneControl * > *table, int p, int val, int curve, double amin, double amid, double amax)
Definition: limiterdsp.h:1177
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:893
LinearValueConverter2()
Definition: limiterdsp.h:705
virtual int getNumInputs()=0
std::map< std::string, int > fLabelMap
Definition: compressordsp.h:1044
virtual double ui2faust(double x)
Definition: limiterdsp.h:708
virtual double faust2ui(double x)
Definition: limiterdsp.h:778
virtual void openVerticalBox(const char *label)
Definition: limiterdsp.h:1254
void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:987
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:823
virtual void closeBox()
Definition: limiterdsp.h:1255
virtual double faust2ui(double x)
Definition: limiterdsp.h:814
std::vector< FAUSTFLOAT > fStep
Definition: compressordsp.h:1050
@ kVSlider
Definition: compressordsp.h:1034
@ kButton
Definition: compressordsp.h:1034
virtual ~ConverterZoneControl()
Definition: limiterdsp.h:941
ZoneReader * fBlueReader
Definition: compressordsp.h:1061
virtual void addNumEntry(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
void popLabel()
Definition: limiterdsp.h:458
virtual ~UpdatableValueConverter()
Definition: limiterdsp.h:652
virtual std::string getSHAKey()=0
Definition: compressordsp.h:168
void setActive(bool on_off)
Definition: limiterdsp.h:992
virtual std::vector< std::string > getIncludePathnames()=0
std::map< const char *, const char * > getMetadata(int p)
Definition: limiterdsp.h:1347
const char * getParamAddress(int p)
Definition: limiterdsp.h:1345
virtual void setActive(bool on_off)
Definition: limiterdsp.h:921
Definition: compressordsp.h:1007
virtual double ui2faust(double x)=0
int fNumParameters
Definition: compressordsp.h:1040
std::string fCurrentTooltip
Definition: compressordsp.h:1069
virtual std::string getName()=0
virtual int getCurve()
Definition: limiterdsp.h:924
virtual dsp_memory_manager * getMemoryManager()=0
virtual void buildUserInterface(UI *ui_interface)
Definition: limiterdsp.h:1716
void getLowHigh(double &amin, double &amax)
Definition: limiterdsp.h:590
@ kGyr
Definition: compressordsp.h:1236
FAUSTFLOAT getParamValue(int p)
Definition: limiterdsp.h:1367
virtual void destroy(void *ptr)=0
virtual void addSoundfile(const char *label, const char *filename, Soundfile **sf_zone)
Definition: limiterdsp.h:1298
double operator()(double x)
Definition: limiterdsp.h:616
virtual void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:916
virtual void addCheckButton(const char *label, REAL *zone)=0
void setParamValue(int p, FAUSTFLOAT v)
Definition: limiterdsp.h:1368
std::vector< FAUSTFLOAT * > fZone
Definition: compressordsp.h:1046
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:780
LogValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:732
virtual double faust2ui(double x)
Definition: limiterdsp.h:709
virtual void instanceInit(int sample_rate)=0
@ kLog
Definition: compressordsp.h:1038
ExpValueConverter(double umin, double umax, double fmin, double fmax)
Definition: limiterdsp.h:749
int fCurrentScale
Definition: compressordsp.h:1065
virtual int getNumInputs()
Definition: limiterdsp.h:176
Definition: compressordsp.h:1031
virtual void setMappingValues(double amin, double amid, double amax, double min, double init, double max)=0
virtual double faust2ui(double x)
Definition: limiterdsp.h:754
FAUSTFLOAT * getParamZone(int p)
Definition: limiterdsp.h:1366
void update(double v) const
Definition: limiterdsp.h:979
Definition: compressordsp.h:802
virtual int getSampleRate()
Definition: limiterdsp.h:179
virtual void instanceClear()
Definition: limiterdsp.h:1676
virtual ~dsp_factory()
Definition: limiterdsp.h:202
virtual void update(double v) const
Definition: limiterdsp.h:914
virtual double faust2ui(double x)
Definition: limiterdsp.h:849
Definition: compressordsp.h:957
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:851
int getAccCount(int acc)
Definition: limiterdsp.h:1510
virtual int getNumOutputs()
Definition: limiterdsp.h:1626
Definition: compressordsp.h:748
std::map< std::string, int > fPathMap
Definition: compressordsp.h:1043
std::string buildPath(const std::string &label)
Definition: limiterdsp.h:439
Definition: compressordsp.h:74
virtual limiterdsp * clone()
Definition: limiterdsp.h:1708
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:917
virtual dsp * createDSPInstance()=0
dsp()
Definition: limiterdsp.h:75
virtual void openVerticalBox(const char *label)=0
FAUSTFLOAT getParamMin(int p)
Definition: limiterdsp.h:1361
Definition: compressordsp.h:906
AccDownUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:878
ValueConverter * getConverter()
Definition: limiterdsp.h:945
FAUSTFLOAT getParamStep(int p)
Definition: limiterdsp.h:1363
const char * getParamLabel(int p)
Definition: limiterdsp.h:1346
std::vector< ItemType > fItemType
Definition: compressordsp.h:1051
UIReal()
Definition: limiterdsp.h:351
double ratio2value(int p, double r)
Definition: limiterdsp.h:1374
Definition: compressordsp.h:872
void getConverter(std::vector< ZoneControl * > *table, int p, int &val, int &curve, double &amin, double &amid, double &amax)
Definition: limiterdsp.h:1204
virtual int getNumOutputs()=0
virtual ~dsp_memory_manager()
Definition: limiterdsp.h:60
bool fActive
Definition: compressordsp.h:649
FAUSTFLOAT * fZone
Definition: compressordsp.h:910
ValueConverter * fValueConverter
Definition: compressordsp.h:939
PathBuilder()
Definition: limiterdsp.h:436
virtual void instanceConstants(int sample_rate)
Definition: limiterdsp.h:182
void setGyrConverter(int p, int gyr, int curve, double amin, double amid, double amax)
Definition: limiterdsp.h:1452
void setMappingValues(int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:981
virtual ~PathBuilder()
Definition: limiterdsp.h:437
const char * getMetadata(int p, const char *key)
Definition: limiterdsp.h:1357
virtual std::vector< std::string > getLibraryList()=0
Definition: compressordsp.h:387
Definition: compressordsp.h:671
virtual void addButton(const char *label, REAL *zone)=0
virtual void metadata(Meta *m)
Definition: limiterdsp.h:186
FAUSTFLOAT getParamMax(int p)
Definition: limiterdsp.h:1362
virtual void addVerticalSlider(const char *label, REAL *zone, REAL init, REAL min, REAL max, REAL step)=0
static void classInit(int sample_rate)
Definition: limiterdsp.h:1658
virtual int getOutputRate(int channel)
Definition: limiterdsp.h:1643
virtual double ui2faust(double x)
Definition: limiterdsp.h:777
ConverterZoneControl(FAUSTFLOAT *zone, ValueConverter *converter)
Definition: limiterdsp.h:940
virtual ~dsp()
Definition: limiterdsp.h:76
std::vector< FAUSTFLOAT > fMin
Definition: compressordsp.h:1048
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:717
UpdatableValueConverter()
Definition: limiterdsp.h:650
void getAccConverter(int p, int &acc, int &curve, double &amin, double &amid, double &amax)
Definition: limiterdsp.h:1468
virtual void addVerticalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: limiterdsp.h:1269
virtual void addHorizontalBargraph(const char *label, REAL *zone, REAL min, REAL max)=0
AccUpConverter(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:772
double value2ratio(int p, double r)
Definition: limiterdsp.h:1373
virtual double ui2faust(double x)
Definition: limiterdsp.h:883
std::string fCurrentGyr
Definition: compressordsp.h:1067
virtual void instanceClear()=0
std::string fCurrentAcc
Definition: compressordsp.h:1066
@ kNoType
Definition: compressordsp.h:1236
virtual void openHorizontalBox(const char *label)=0
@ kCheckButton
Definition: compressordsp.h:1034
virtual void setMappingValues(double amin, double amid, double amax, double fmin, double fmid, double fmax)
Definition: limiterdsp.h:816
virtual void addHorizontalSlider(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT init, FAUSTFLOAT min, FAUSTFLOAT max, FAUSTFLOAT step)
Definition: limiterdsp.h:1274
virtual double ui2faust(double x)
Definition: limiterdsp.h:813
virtual double ui2faust(double x)
Definition: limiterdsp.h:683
void setParamRatio(int p, double r)
Definition: limiterdsp.h:1371
LinearValueConverter2(double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:701
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:1723
virtual ~ZoneControl()
Definition: limiterdsp.h:912
virtual void metadata(Meta *m)=0
double getParamRatio(int p)
Definition: limiterdsp.h:1370
Definition: compressordsp.h:935
Definition: compressordsp.h:632
virtual int getNumOutputs()
Definition: limiterdsp.h:177
std::vector< FAUSTFLOAT > fMax
Definition: compressordsp.h:1049
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:787
virtual void instanceResetUserInterface()
Definition: limiterdsp.h:1672
virtual void instanceInit(int sample_rate)
Definition: limiterdsp.h:181
virtual void declare(FAUSTFLOAT *zone, const char *key, const char *val)
Definition: limiterdsp.h:1302
virtual void update(double v) const
Definition: limiterdsp.h:943
int getCurve()
Definition: limiterdsp.h:1000
Definition: compressordsp.h:731
virtual void openTabBox(const char *label)
Definition: limiterdsp.h:1252
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)=0
virtual void addButton(const char *label, FAUSTFLOAT *zone)
Definition: limiterdsp.h:1259
Definition: compressordsp.h:431
std::string buildLabel(std::string label)
Definition: limiterdsp.h:451
@ kVBargraph
Definition: compressordsp.h:1034
virtual void init(int sample_rate)=0
void metadata(Meta *m)
Definition: limiterdsp.h:1595
@ kLin
Definition: compressordsp.h:1038
virtual void declare(const char *key, const char *val)
Definition: limiterdsp.h:1328
@ kNumEntry
Definition: compressordsp.h:1034
bool fHasScreenControl
Definition: compressordsp.h:1058
std::map< std::string, std::string > fCurrentMetadata
Definition: compressordsp.h:1070
virtual ~decorator_dsp()
Definition: limiterdsp.h:174
int getValue()
Definition: limiterdsp.h:1017
bool getActive()
Definition: limiterdsp.h:659
Definition: compressordsp.h:61
Interpolator3pt(double lo, double mi, double hi, double v1, double vm, double v2)
Definition: limiterdsp.h:612
void setActive(bool on_off)
Definition: limiterdsp.h:658
APIUI()
Definition: limiterdsp.h:1235
virtual int getSampleRate()=0
Type getParamType(int p)
Definition: limiterdsp.h:1383
virtual void addHorizontalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: limiterdsp.h:1286
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: limiterdsp.h:188
std::vector< FAUSTFLOAT > fInit
Definition: compressordsp.h:1047
int getParamsCount()
Definition: limiterdsp.h:1334
ItemType getParamItemType(int p)
Definition: limiterdsp.h:1406
CurveZoneControl(FAUSTFLOAT *zone, int curve, double amin, double amid, double amax, double min, double init, double max)
Definition: limiterdsp.h:963
std::string fCurrentUnit
Definition: compressordsp.h:1064
virtual void getMappingValues(double &amin, double &amid, double &amax)
Definition: limiterdsp.h:858
double operator()(double v)
Definition: compressordsp.h:587
Definition: compressordsp.h:353
void propagateAcc(int acc, double value)
Definition: limiterdsp.h:1418
virtual void addVerticalBargraph(const char *label, FAUSTFLOAT *zone, FAUSTFLOAT min, FAUSTFLOAT max)
Definition: limiterdsp.h:1291
@ kHSlider
Definition: compressordsp.h:1034