History

added ADSR4 and exponential table generation

spiricom committed 6 years ago

Commit 64d544f1 parent 4cb315f6 files · +473 −6Browse files

Unified · Split

6 files
  1. .DS_Store +0 −0
  2. LEAF/Inc/leaf-envelopes.h +43 −3
  3. LEAF/Inc/leaf-math.h +6 −0
  4. LEAF/Src/leaf-envelopes.c +386 −3
  5. LEAF/Src/leaf-math.c +20 −1
  6. LEAF/Src/leaf-tables.c +19 −0
.DS_Store+0−0

Binary file not shown.

LEAF/Inc/leaf-envelopes.h+43−3
@@ -91,6 +91,7 @@ extern "C" { · 90 unmodified lines
9191 void tExpSmooth_setFactor (tExpSmooth* const, float factor);
9292 void tExpSmooth_setDest (tExpSmooth* const, float dest);
9393 void tExpSmooth_setVal (tExpSmooth* const, float val);
94+ void tExpSmooth_setValAndDest(tExpSmooth* const expsmooth, float val);
9495
9596 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
9697
@@ -122,9 +123,9 @@ extern "C" { · 25 unmodified lines
122123
123124 typedef _tADSR* tADSR;
124125
125− void tADSR_init (tADSR* const, float attack, float decay, float sustain, float release);
126+ void tADSR_init (tADSR* const adsrenv, float attack, float decay, float sustain, float release);
126127 void tADSR_free (tADSR* const);
127− void tADSR_initToPool (tADSR* const, float attack, float decay, float sustain, float release, tMempool* const);
128+ void tADSR_initToPool (tADSR* const adsrenv, float attack, float decay, float sustain, float release, tMempool* const mp);
128129 void tADSR_freeFromPool (tADSR* const, tMempool* const);
129130
130131 float tADSR_tick (tADSR* const);
@@ -237,8 +238,47 @@ extern "C" { · 106 unmodified lines
237238 void tADSR3_off (tADSR3* const);
238239
239240 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
240− // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
241241
242+ /* ADSR 4*/
243+ typedef struct _tADSR4
244+ {
245+ const float *exp_buff;
246+ uint32_t buff_size;
247+ uint32_t buff_sizeMinusOne;
248+ float bufferSizeDividedBySampleRateInMs;
249+ float next;
250+
251+ float attackInc, decayInc, releaseInc, rampInc;
252+
253+ oBool inAttack, inDecay, inSustain, inRelease, inRamp;
254+
255+ float sustain, gain, rampPeak, releasePeak;
256+
257+ float attackPhase, decayPhase, releasePhase, rampPhase;
258+
259+ float leakFactor;
260+
261+
262+ } _tADSR4;
263+
264+ typedef _tADSR4* tADSR4;
265+
266+ void tADSR4_init (tADSR4* const, float attack, float decay, float sustain, float release, float* expBuffer, int bufferSize);
267+ void tADSR4_free (tADSR4* const);
268+ void tADSR4_initToPool (tADSR4* const, float attack, float decay, float sustain, float release, float* expBuffer, int bufferSize, tMempool* const);
269+ void tADSR4_freeFromPool (tADSR4* const, tMempool* const);
270+
271+ float tADSR4_tick (tADSR4* const);
272+ float tADSR4_tickNoInterp (tADSR4* const adsrenv);
273+ void tADSR4_setAttack (tADSR4* const, float attack);
274+ void tADSR4_setDecay (tADSR4* const, float decay);
275+ void tADSR4_setSustain (tADSR4* const, float sustain);
276+ void tADSR4_setRelease (tADSR4* const, float release);
277+ void tADSR4_setLeakFactor (tADSR4* const, float leakFactor);
278+ void tADSR4_on (tADSR4* const, float velocity);
279+ void tADSR4_off (tADSR4* const);
280+ // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
281+
242282 /* Ramp */
243283 typedef struct _tRamp {
244284 float inc;
LEAF/Inc/leaf-math.h+6−0
@@ -144,6 +144,7 @@ extern "C" { · 143 unmodified lines
144144
145145 float fastPowf(float a, float b) ;
146146 double fastPow(double a, double b);
147+
147148
148149 void LEAF_crossfade(float fade, float* volumes);
149150
@@ -153,6 +154,11 @@ extern "C" { · 3 unmodified lines
153154 void LEAF_generate_sawtooth(float* buffer, float basefreq, int size);
154155 void LEAF_generate_triangle(float* buffer, float basefreq, int size);
155156 void LEAF_generate_square(float* buffer, float basefreq, int size);
157+
158+ //0.001 base gives a good curve that goes from 1 to near zero
159+ //1000 gives a good curve from -1.0 to 0.0
160+ void LEAF_generate_exp(float* buffer, float base, float start, float end, float offset, int size);
161+
156162 float LEAF_poly_blep(float t, float dt);
157163 float LEAF_midiToFrequency(float f);
158164
LEAF/Src/leaf-envelopes.c+386−3
@@ -496,7 +496,7 @@ float tADSR_tick(tADSR* const adsrenv) · 495 unmodified lines
496496
497497 else
498498 {
499− adsr->next = adsr->gain * (adsr->sustain + ((adsr->exp_buff[(uint32_t)adsr->decayPhase]) * (1 - adsr->sustain))); // do interpolation !
499+ adsr->next = (adsr->gain * (adsr->sustain + ((adsr->exp_buff[(uint32_t)adsr->decayPhase]) * (1.0f - adsr->sustain)))) * adsr->leakFactor; // do interpolation !
500500 }
501501
502502 // Increment ADSR decay.
@@ -722,14 +722,14 @@ void tADSR3_initToPool (tADSR3* const adsrenv, float attack, float decay, · 219 unmodified lines
722722 adsr->attackBase = (1.0f + adsr->targetRatioA) * (1.0f - adsr->attackCoef);
723723
724724 adsr->decayRate = decay * adsr->sampleRateInMs;
725− adsr->decayCoef = calcADSRCoef(decay * adsr->sampleRateInMs,adsr-> targetRatioDR);
725+ adsr->decayCoef = calcADSR3Coef(decay * adsr->sampleRateInMs,adsr-> targetRatioDR);
726726 adsr->decayBase = (adsr->sustainLevel - adsr->targetRatioDR) * (1.0f - adsr->decayCoef);
727727
728728 adsr->sustainLevel = sustain;
729729 adsr->decayBase = (adsr->sustainLevel - adsr->targetRatioDR) * (1.0f - adsr->decayCoef);
730730
731731 adsr->releaseRate = release * adsr->sampleRateInMs;
732− adsr->releaseCoef = calcADSRCoef(release * adsr->sampleRateInMs, adsr->targetRatioDR);
732+ adsr->releaseCoef = calcADSR3Coef(release * adsr->sampleRateInMs, adsr->targetRatioDR);
733733 adsr->releaseBase = -adsr->targetRatioDR * (1.0f - adsr->releaseCoef);
734734
735735 adsr->state = env_idle;
@@ -846,6 +846,382 @@ float tADSR3_tick(tADSR3* const adsrenv) · 110 unmodified lines
846846 }
847847
848848
849+/* ADSR 4 */ // new version of our original table-based ADSR but with the table passed in by the user
850+// use this if the size of the big ADSR tables is too much.
851+void tADSR4_init (tADSR4* const adsrenv, float attack, float decay, float sustain, float release, float* expBuffer, int bufferSize)
852+{
853+ tADSR4_initToPool (adsrenv, attack, decay, sustain, release, expBuffer, bufferSize, &leaf.mempool);
854+}
855+
856+void tADSR4_free(tADSR4* const adsrenv)
857+{
858+ tADSR4_freeFromPool(adsrenv, &leaf.mempool);
859+}
860+
861+//initialize with an exponential function that decays -- i.e. a call to LEAF_generate_exp(expBuffer, 0.001f, 0.0f, 1.0f, -0.0008f, EXP_BUFFER_SIZE);
862+//times are in ms
863+void tADSR4_initToPool (tADSR4* const adsrenv, float attack, float decay, float sustain, float release, float* expBuffer, int bufferSize, tMempool* const mp)
864+{
865+ _tMempool* m = *mp;
866+ _tADSR4* adsr = *adsrenv = (_tADSR4*) mpool_alloc(sizeof(_tADSR4), m);
867+
868+ adsr->exp_buff = expBuffer;
869+ adsr->buff_size = bufferSize;
870+ adsr->buff_sizeMinusOne = bufferSize - 1;
871+
872+ adsr->bufferSizeDividedBySampleRateInMs = bufferSize / (leaf.sampleRate * 0.001f);
873+
874+ if (attack < 0.0f)
875+ attack = 0.0f;
876+
877+ if (decay < 0.0f)
878+ decay = 0.0f;
879+
880+ if (sustain > 1.0f)
881+ sustain = 1.0f;
882+ if (sustain < 0.0f)
883+ sustain = 0.0f;
884+
885+ if (release < 0.0f)
886+ release = 0.0f;
887+
888+ adsr->next = 0.0f;
889+
890+ adsr->inRamp = OFALSE;
891+ adsr->inAttack = OFALSE;
892+ adsr->inDecay = OFALSE;
893+ adsr->inSustain = OFALSE;
894+ adsr->inRelease = OFALSE;
895+
896+ adsr->sustain = sustain;
897+
898+ adsr->attackInc = adsr->bufferSizeDividedBySampleRateInMs / attack;
899+ adsr->decayInc = adsr->bufferSizeDividedBySampleRateInMs / decay;
900+ adsr->releaseInc = adsr->bufferSizeDividedBySampleRateInMs / release;
901+ adsr->rampInc = adsr->bufferSizeDividedBySampleRateInMs / 8.0f;
902+
903+ adsr->leakFactor = 1.0f;
904+}
905+
906+void tADSR4_freeFromPool (tADSR4* const adsrenv, tMempool* const mp)
907+{
908+ _tMempool* m = *mp;
909+ _tADSR4* adsr = *adsrenv;
910+ mpool_free(adsr, m);
911+}
912+
913+void tADSR4_setAttack(tADSR4* const adsrenv, float attack)
914+{
915+ _tADSR4* adsr = *adsrenv;
916+
917+ if (attack < 0.0f)
918+ {
919+ attack = 0.0f;
920+ }
921+
922+ adsr->attackInc = adsr->bufferSizeDividedBySampleRateInMs / attack;
923+}
924+
925+void tADSR4_setDecay(tADSR4* const adsrenv, float decay)
926+{
927+ _tADSR4* adsr = *adsrenv;
928+
929+ if (decay < 0.0f)
930+ {
931+ decay = 0.0f;
932+ }
933+ adsr->decayInc = adsr->bufferSizeDividedBySampleRateInMs / decay;
934+}
935+
936+void tADSR4_setSustain(tADSR4* const adsrenv, float sustain)
937+{
938+ _tADSR4* adsr = *adsrenv;
939+
940+ if (sustain > 1.0f) adsr->sustain = 1.0f;
941+ else if (sustain < 0.0f) adsr->sustain = 0.0f;
942+ else adsr->sustain = sustain;
943+}
944+
945+void tADSR4_setRelease(tADSR4* const adsrenv, float release)
946+{
947+ _tADSR4* adsr = *adsrenv;
948+
949+ if (release < 0.0f)
950+ {
951+ release = 0.0f;
952+ }
953+ adsr->releaseInc = adsr->bufferSizeDividedBySampleRateInMs / release;
954+}
955+
956+// 0.999999 is slow leak, 0.9 is fast leak
957+void tADSR4_setLeakFactor(tADSR4* const adsrenv, float leakFactor)
958+{
959+ _tADSR4* adsr = *adsrenv;
960+
961+
962+ adsr->leakFactor = leakFactor;
963+}
964+
965+void tADSR4_on(tADSR4* const adsrenv, float velocity)
966+{
967+ _tADSR4* adsr = *adsrenv;
968+
969+ if ((adsr->inAttack || adsr->inDecay) || (adsr->inSustain || adsr->inRelease)) // In case ADSR retriggered while it is still happening.
970+ {
971+ adsr->rampPhase = 0;
972+ adsr->inRamp = OTRUE;
973+ adsr->rampPeak = adsr->next;
974+ }
975+ else // Normal start.
976+ {
977+ adsr->inAttack = OTRUE;
978+ }
979+
980+ adsr->attackPhase = 0;
981+ adsr->decayPhase = 0;
982+ adsr->releasePhase = 0;
983+ adsr->inDecay = OFALSE;
984+ adsr->inSustain = OFALSE;
985+ adsr->inRelease = OFALSE;
986+ adsr->gain = velocity;
987+}
988+
989+void tADSR4_off(tADSR4* const adsrenv)
990+{
991+ _tADSR4* adsr = *adsrenv;
992+
993+ if (adsr->inRelease) return;
994+
995+ adsr->inAttack = OFALSE;
996+ adsr->inDecay = OFALSE;
997+ adsr->inSustain = OFALSE;
998+ adsr->inRelease = OTRUE;
999+
1000+ adsr->releasePeak = adsr->next;
1001+}
1002+
1003+float tADSR4_tick(tADSR4* const adsrenv)
1004+{
1005+ _tADSR4* adsr = *adsrenv;
1006+
1007+
1008+ if (adsr->inRamp)
1009+ {
1010+ if (adsr->rampPhase > adsr->buff_sizeMinusOne)
1011+ {
1012+ adsr->inRamp = OFALSE;
1013+ adsr->inAttack = OTRUE;
1014+ adsr->next = 0.0f;
1015+ }
1016+ else
1017+ {
1018+ uint32_t intPart = (uint32_t)adsr->rampPhase;
1019+ float floatPart = adsr->rampPhase - intPart;
1020+ float secondValue;
1021+ if (adsr->rampPhase + 1.0f > adsr->buff_sizeMinusOne)
1022+ {
1023+ secondValue = 0.0f;
1024+ }
1025+ else
1026+ {
1027+ secondValue = adsr->exp_buff[(uint32_t)((adsr->rampPhase)+1)];
1028+ }
1029+ adsr->next = adsr->rampPeak * LEAF_interpolation_linear(adsr->exp_buff[(uint32_t)(adsr->rampPhase)], secondValue, floatPart);
1030+ }
1031+
1032+ adsr->rampPhase += adsr->rampInc;
1033+ }
1034+
1035+ if (adsr->inAttack)
1036+ {
1037+
1038+ // If attack done, time to turn around.
1039+ if (adsr->attackPhase > adsr->buff_sizeMinusOne)
1040+ {
1041+ adsr->inDecay = OTRUE;
1042+ adsr->inAttack = OFALSE;
1043+ adsr->next = adsr->gain;
1044+ }
1045+ else
1046+ {
1047+ // do interpolation !
1048+ uint32_t intPart = (uint32_t)adsr->attackPhase;
1049+ float floatPart = adsr->attackPhase - intPart;
1050+ float secondValue;
1051+ if (adsr->attackPhase + 1.0f > adsr->buff_sizeMinusOne)
1052+ {
1053+ secondValue = 0.0f;
1054+ }
1055+ else
1056+ {
1057+ secondValue = adsr->exp_buff[(uint32_t)((adsr->attackPhase)+1)];
1058+ }
1059+
1060+ adsr->next = adsr->gain * (1.0f - LEAF_interpolation_linear(adsr->exp_buff[(uint32_t)(adsr->attackPhase)], secondValue, floatPart)); // inverted and backwards to get proper rising exponential shape/perception
1061+ }
1062+
1063+ // Increment ADSR attack.
1064+ adsr->attackPhase += adsr->attackInc;
1065+
1066+ }
1067+
1068+ if (adsr->inDecay)
1069+ {
1070+
1071+ // If decay done, sustain.
1072+ if (adsr->decayPhase > adsr->buff_sizeMinusOne)
1073+ {
1074+ adsr->inDecay = OFALSE;
1075+ adsr->inSustain = OTRUE;
1076+ adsr->next = adsr->gain * adsr->sustain;
1077+ }
1078+
1079+ else
1080+ {
1081+ uint32_t intPart = (uint32_t)adsr->decayPhase;
1082+ float floatPart = adsr->decayPhase - intPart;
1083+ float secondValue;
1084+ if (adsr->decayPhase + 1.0f > adsr->buff_sizeMinusOne)
1085+ {
1086+ secondValue = 0.0f;
1087+ }
1088+ else
1089+ {
1090+ secondValue = adsr->exp_buff[(uint32_t)((adsr->decayPhase)+1)];
1091+ }
1092+ float interpValue = (LEAF_interpolation_linear(adsr->exp_buff[(uint32_t)(adsr->decayPhase)], secondValue, floatPart));
1093+ adsr->next = (adsr->gain * (adsr->sustain + (interpValue * (1.0f - adsr->sustain)))) * adsr->leakFactor; // do interpolation !
1094+ }
1095+
1096+ // Increment ADSR decay.
1097+ adsr->decayPhase += adsr->decayInc;
1098+ }
1099+
1100+ if (adsr->inSustain)
1101+ {
1102+ adsr->next = adsr->next * adsr->leakFactor;
1103+ }
1104+
1105+ if (adsr->inRelease)
1106+ {
1107+ // If release done, finish.
1108+ if (adsr->releasePhase > adsr->buff_sizeMinusOne)
1109+ {
1110+ adsr->inRelease = OFALSE;
1111+ adsr->next = 0.0f;
1112+ }
1113+ else {
1114+ uint32_t intPart = (uint32_t)adsr->releasePhase;
1115+ float floatPart = adsr->releasePhase - intPart;
1116+ float secondValue;
1117+ if (adsr->releasePhase + 1.0f > adsr->buff_sizeMinusOne)
1118+ {
1119+ secondValue = 0.0f;
1120+ }
1121+ else
1122+ {
1123+ secondValue = adsr->exp_buff[(uint32_t)((adsr->releasePhase)+1)];
1124+ }
1125+ adsr->next = adsr->releasePeak * (LEAF_interpolation_linear(adsr->exp_buff[(uint32_t)(adsr->releasePhase)], secondValue, floatPart)); // do interpolation !
1126+ }
1127+
1128+ // Increment envelope release;
1129+ adsr->releasePhase += adsr->releaseInc;
1130+ }
1131+
1132+
1133+ return adsr->next;
1134+}
1135+
1136+float tADSR4_tickNoInterp(tADSR4* const adsrenv)
1137+{
1138+ _tADSR4* adsr = *adsrenv;
1139+
1140+
1141+ if (adsr->inRamp)
1142+ {
1143+ if (adsr->rampPhase > adsr->buff_sizeMinusOne)
1144+ {
1145+ adsr->inRamp = OFALSE;
1146+ adsr->inAttack = OTRUE;
1147+ adsr->next = 0.0f;
1148+ }
1149+ else
1150+ {
1151+ adsr->next = adsr->rampPeak * adsr->exp_buff[(uint32_t)(adsr->rampPhase)];
1152+ }
1153+
1154+ adsr->rampPhase += adsr->rampInc;
1155+ }
1156+
1157+ if (adsr->inAttack)
1158+ {
1159+
1160+ // If attack done, time to turn around.
1161+ if (adsr->attackPhase > adsr->buff_sizeMinusOne)
1162+ {
1163+ adsr->inDecay = OTRUE;
1164+ adsr->inAttack = OFALSE;
1165+ adsr->next = adsr->gain;
1166+ }
1167+ else
1168+ {
1169+ // do interpolation !
1170+ adsr->next = adsr->gain * (1.0f - adsr->exp_buff[(uint32_t)(adsr->attackPhase)]); // inverted and backwards to get proper rising exponential shape/perception
1171+ }
1172+
1173+ // Increment ADSR attack.
1174+ adsr->attackPhase += adsr->attackInc;
1175+
1176+ }
1177+
1178+ if (adsr->inDecay)
1179+ {
1180+
1181+ // If decay done, sustain.
1182+ if (adsr->decayPhase > adsr->buff_sizeMinusOne)
1183+ {
1184+ adsr->inDecay = OFALSE;
1185+ adsr->inSustain = OTRUE;
1186+ adsr->next = adsr->gain * adsr->sustain;
1187+ }
1188+
1189+ else
1190+ {
1191+ adsr->next = (adsr->gain * (adsr->sustain + ((adsr->exp_buff[(uint32_t)(adsr->decayPhase)]) * (1.0f - adsr->sustain)))) * adsr->leakFactor; // do interpolation !
1192+ }
1193+
1194+ // Increment ADSR decay.
1195+ adsr->decayPhase += adsr->decayInc;
1196+ }
1197+
1198+ if (adsr->inSustain)
1199+ {
1200+ adsr->next = adsr->next * adsr->leakFactor;
1201+ }
1202+
1203+ if (adsr->inRelease)
1204+ {
1205+ // If release done, finish.
1206+ if (adsr->releasePhase > adsr->buff_sizeMinusOne)
1207+ {
1208+ adsr->inRelease = OFALSE;
1209+ adsr->next = 0.0f;
1210+ }
1211+ else {
1212+
1213+ adsr->next = adsr->releasePeak * (adsr->exp_buff[(uint32_t)(adsr->releasePhase)]); // do interpolation !
1214+ }
1215+
1216+ // Increment envelope release;
1217+ adsr->releasePhase += adsr->releaseInc;
1218+ }
1219+
1220+
1221+ return adsr->next;
1222+}
1223+
1224+
8491225
8501226 /////-----------------
8511227 /* Ramp */
@@ -1180,6 +1556,13 @@ void tExpSmooth_setVal(tExpSmooth* const expsmooth, float val) · 328 unmodified lines
11801556 smooth->curr=val;
11811557 }
11821558
1559+void tExpSmooth_setValAndDest(tExpSmooth* const expsmooth, float val)
1560+{
1561+ _tExpSmooth* smooth = *expsmooth;
1562+ smooth->curr=val;
1563+ smooth->dest=val;
1564+}
1565+
11831566 float tExpSmooth_tick(tExpSmooth* const expsmooth)
11841567 {
11851568 _tExpSmooth* smooth = *expsmooth;
LEAF/Src/leaf-math.c+20−1
@@ -175,6 +175,11 @@ double fastPow(double a, double b) { · 174 unmodified lines
175175 u.x[0] = 0;
176176 return u.d;
177177 }
178+
179+
180+
181+
182+
178183 /*
179184 you pass in a float array to get back two indexes representing the volumes of the left (index 0) and right (index 1) channels
180185 when t is -1, volumes[0] = 0, volumes[1] = 1
@@ -213,7 +218,7 @@ float LEAF_CompoundChebyshevT(float in, int n, float* amps){ · 32 unmodified lines
213218
214219 float LEAF_frequencyToMidi(float f)
215220 {
216− return (69.0f + 12.0f * log2(f * INV_440));
221+ return (69.0f + 12.0f * log2f(f * INV_440));
217222 }
218223
219224 // Jones shaper
@@ -426,6 +431,20 @@ void LEAF_generate_square(float* buffer, float basefreq, int size) · 206 unmodified lines
426431 }
427432 }
428433
434+
435+//0.001 base gives a good curve that goes from 1 to near zero
436+void LEAF_generate_exp(float* buffer, float base, float start, float end, float offset, int size)
437+{
438+ float increment = (end - start) / (float)size;
439+ float x = start;
440+ for (int i = 0; i < size; i++)
441+ {
442+ buffer[i] = powf(base, x) + offset;
443+ x += increment;
444+ }
445+}
446+
447+
429448 // http://www.martin-finke.de/blog/articles/audio-plugins-018-polyblep-oscillator/
430449 // http://www.kvraudio.com/forum/viewtopic.php?t=375517
431450 // t = phase, dt = inc, assuming 0-1 phase
LEAF/Src/leaf-tables.c+19−0
@@ -21,6 +21,8 @@ const float __leaf_table_fir4XLow[64] = { 0.0006952369848543607, -0.002160259 · 20 unmodified lines
2121 };
2222 const float __leaf_table_fir8XLow[64] = { 0.0006754949160790157, 0.0002779478357299437, 0.00016529299248029802, -0.00013134896547707938, -0.0006717131404275674, -0.0015110701381990592, -0.002691718323402088, -0.004233151560515273, -0.006122759810873029, -0.008309678451155357, -0.010700324896169348, -0.013154262594364387, -0.015486775440587882, -0.01748014690133886, -0.018887653514132675, -0.019456772349369558, -0.01894272181784527, -0.017131243827335194, -0.013858969256894846, -0.009032963777720983, -0.0026459262830678125, 0.00521276165394513, 0.01435273458276724, 0.024486845310977834, 0.03524172116254876, 0.04617574968276393, 0.05680505888194891, 0.06663123541320262, 0.07517390607705798, 0.08200222626654773, 0.0867639105153248, 0.08920930675382921, 0.08920930675382921, 0.0867639105153248, 0.08200222626654773, 0.07517390607705798, 0.06663123541320262, 0.05680505888194891, 0.04617574968276393, 0.03524172116254876, 0.024486845310977834, 0.01435273458276724, 0.00521276165394513, -0.0026459262830678125, -0.009032963777720983, -0.013858969256894846, -0.017131243827335194, -0.01894272181784527, -0.019456772349369558, -0.018887653514132675, -0.01748014690133886, -0.015486775440587882, -0.013154262594364387, -0.010700324896169348, -0.008309678451155357, -0.006122759810873029, -0.004233151560515273, -0.002691718323402088, -0.0015110701381990592, -0.0006717131404275674, -0.00013134896547707938, 0.00016529299248029802, 0.0002779478357299437, 0.0006754949160790157
2323 };
24+
25+
2426 const float __leaf_table_fir16XLow[128] = { 0.0046126349429950276, 0.002418251320043122, 0.002998396982119693, 0.0036278090719021024, 0.0042975430005925104, 0.004996222179947315, 0.005711926725799716, 0.00643079625328543, 0.007135468516004265, 0.007808520869830334, 0.008432568881455365, 0.008987453845736109, 0.00945525638237626, 0.009815890031354925, 0.01005214318250272, 0.0101471696783731, 0.010086582032584102, 0.009858344528406827, 0.009453351108896472, 0.00886647074448095, 0.008096771309653635, 0.00714751717242796, 0.006026566967445846, 0.004745997071949807, 0.0033222377606249025, 0.0017766711441555428, 0.00013504407845816216, -0.0015717347700967995, -0.0033094088955885038, -0.005040712758495562, -0.0067262136355625045, -0.00832548062138737, -0.009796853749250854, -0.011097728611024173, -0.012187337326564303, -0.013023698103098556, -0.013573509920266506, -0.013801755448129987, -0.013685636499932173, -0.0132011750541409, -0.012328290422335804, -0.011059565013468301, -0.009397775060844537, -0.007349071952063118, -0.004920665178899413, -0.002134336426912994, 0.0009664872092121234, 0.00436478920287496, 0.008003553325930378, 0.011839210717492617, 0.015814297525442545, 0.01987142580304551, 0.023948983229671674, 0.0279823843957138, 0.03190689232743185, 0.03565816745288488, 0.03917373689862927, 0.042395392373465575, 0.04526788671987817, 0.0477424527036618, 0.04977580760639264, 0.051332653704811104, 0.05238580079738586, 0.05291690409987073, 0.05291690409987073, 0.05238580079738586, 0.051332653704811104, 0.04977580760639264, 0.0477424527036618, 0.04526788671987817, 0.042395392373465575, 0.03917373689862927, 0.03565816745288488, 0.03190689232743185, 0.0279823843957138, 0.023948983229671674, 0.01987142580304551, 0.015814297525442545, 0.011839210717492617, 0.008003553325930378, 0.00436478920287496, 0.0009664872092121234, -0.002134336426912994, -0.004920665178899413, -0.007349071952063118, -0.009397775060844537, -0.011059565013468301, -0.012328290422335804, -0.0132011750541409, -0.013685636499932173, -0.013801755448129987, -0.013573509920266506, -0.013023698103098556, -0.012187337326564303, -0.011097728611024173, -0.009796853749250854, -0.00832548062138737, -0.0067262136355625045, -0.005040712758495562, -0.0033094088955885038, -0.0015717347700967995, 0.00013504407845816216, 0.0017766711441555428, 0.0033222377606249025, 0.004745997071949807, 0.006026566967445846, 0.00714751717242796, 0.008096771309653635, 0.00886647074448095, 0.009453351108896472, 0.009858344528406827, 0.010086582032584102, 0.0101471696783731, 0.01005214318250272, 0.009815890031354925, 0.00945525638237626, 0.008987453845736109, 0.008432568881455365, 0.007808520869830334, 0.007135468516004265, 0.00643079625328543, 0.005711926725799716, 0.004996222179947315, 0.0042975430005925104, 0.0036278090719021024, 0.002998396982119693, 0.002418251320043122, 0.0046126349429950276
2527 };
2628
@@ -43,11 +45,14 @@ const float __leaf_table_fir32XHigh[512] = { 0.00001695726883388158, 0.000 · 16 unmodified lines
4345 const float __leaf_table_fir64XHigh[1024] = { 0.000022913289467138396, 0.0000053659189590266235, 0.0000059874129268137184, 0.000006651966903409214, 0.000007360859185648702, 0.000008116254962232182, 0.000008919034969234169, 0.000009771649771624484, 0.00001067513223630924, 0.000011631201209261511, 0.000012641797347255405, 0.00001370786337628007, 0.000014831347439124435, 0.00001601386713533323, 0.00001725659281802051, 0.000018561209740219567, 0.00001992924403854817, 0.00002136207377464052, 0.000022860960742170415, 0.00002442737159197627, 0.000026062787460182665, 0.00002776823090942686, 0.00002954497152514943, 0.000031394387750225555, 0.0000333174817796639, 0.00003531515315607694, 0.000037388352711032095, 0.00003953809180607858, 0.000041765124869157065, 0.00004406996003435772, 0.00004645314118637872, 0.00004891512239763599, 0.000051456283434024254, 0.000054076836400090634, 0.00005677675565218903, 0.00005955600371707976, 0.00006241451652786996, 0.0000653520878490535, 0.00006836828400903681, 0.00007146257248874113, 0.00007463447593939765, 0.00007788334878376474, 0.00008120828768996651, 0.00008460822180317937, 0.00008808197111592392, 0.00009162826246394013, 0.00009524561718379787, 0.0000989323217880672, 0.00010268641529207459, 0.00010650572670297642, 0.00011038797758602729, 0.00011433071893118852, 0.00011833127277888537, 0.0001223867211507117, 0.0001264939791526471, 0.0001306498943438022, 0.00013485120459499745, 0.0001390945080465441, 0.0001433761787732808, 0.0001476923508970611, 0.0001520390228045441, 0.00015641203030453322, 0.0001608069510673283, 0.00016521898552431528, 0.0001696430686231646, 0.0001740740165774301, 0.00017850636200629103, 0.0001829343448175031, 0.00018735205242694257, 0.000191753562437378, 0.00019613295450734188, 0.00020048414321002534, 0.00020480094575553342, 0.00020907706346541747, 0.00021330607883745088, 0.00021748145118260308, 0.00022159611743123445, 0.0002256425365807074, 0.0002296129456080256, 0.00023349938436811445, 0.00023729369397980805, 0.00024098757818162363, 0.0002445732198467269, 0.00024804316088030066, 0.00025138980120093706, 0.00025460575109546185, 0.00025768336513093236, 0.000260614166491108, 0.00026338871874574443, 0.000265996883919168, 0.00026842872851524756, 0.0002706745796903796, 0.00027272653793114146, 0.0002745790007011535, 0.0002762259706331217, 0.0002776600678298683, 0.0002788693645809233, 0.0002798371088712506, 0.0002805501390130166, 0.0002810071637276198, 0.0002812218387032567, 0.0002811853995116189, 0.0002808065268305555, 0.000280197444464886, 0.00027926833477321045, 0.0002780409500002217, 0.0002765020258372484, 0.00027464338678576605, 0.00027245845620400524, 0.0002699387312629035, 0.0002670776879725044, 0.0002638682356241208, 0.00026030295633048156, 0.0002563760351381784, 0.00025208079324849864, 0.00024741089077219824, 0.00024236092911432053, 0.00023692535214431433, 0.00023109887243694582, 0.0002248766203312044, 0.00021825436568685826, 0.0002112279751888258, 0.00020379342129965214, 0.00019594765441000844, 0.00018768793613519225, 0.00017901156693343162, 0.0001699163889323255, 0.00016040086314937234, 0.00015046397564821766, 0.00014010492118016657, 0.00012932331202118152, 0.00011811939311034222, 0.00010649390448787931, 0.00009444816369190979, 0.00008198390428241564, 0.00006910334679829026, 0.00005580947004681174, 0.000042105866991998394, 0.000027996578416041823, 0.000013486064917873263, -0.0000014205550195404417, -0.000016717431552354825, -0.00003239824489309241, -0.00004845619470295486, -0.00006488392097284113, -0.00008167344072768395, -0.00009881608266779326, -0.00011630254584578235, -0.000134122927443183, -0.0001522667855569792, -0.00017072306915224178, -0.0001894800112434245, -0.00020852521704417434, -0.00022784574374784246, -0.00024742817471772824, -0.00026725858015049425, -0.00028732242720909374, -0.0003076045740274102, -0.00032808926773727473, -0.0003487602312779994, -0.0003696006180382817, -0.00039059290984859706, -0.00041171900064429, -0.00043296032505169577, -0.00045429794314525324, -0.0004757124161811035, -0.0004971838198071831, -0.0005186919510053738, -0.0005402162469729259, -0.0005617356366067017, -0.0005832284295812785, -0.0006046723908249317, -0.0006260449390330644, -0.0006473231692560336, -0.0006684839703829051, -0.0006895039843981559, -0.000710359669543136, -0.000731027532147202, -0.0007514837903863777, -0.000771704162227947, -0.0007916639719227004, -0.0008113383362587028, -0.0008307023010845163, -0.0008497307715244494, -0.0008683991132471614, -0.0008866831646045461, -0.0009045584634477986, -0.000922000299232565, -0.0009389835464993075, -0.0009554827702629912, -0.0009714727766152153, -0.000986929306593871, -0.0010018296635038234, -0.001016150958603644, -0.0010298692409237303, -0.0010429598373262593, -0.0010553976134962566, -0.001067160927893583, -0.0010782313132298208, -0.0010885880181663468, -0.001098205538071845, -0.0011070578885002702, -0.001115133482641312, -0.0011224205008357393, -0.0011288733610789721, -0.001134502525433292, -0.0011392722062450377, -0.001143172631327465, -0.0011461862709457055, -0.0011482970085184934, -0.0011494916928265647, -0.0011497552449535495, -0.001149075700165883, -0.0011474412643782891, -0.00114484006082293, -0.0011412629577426628, -0.001136700795386366, -0.0011311451534842774, -0.0011245894559787622, -0.0011170279740759658, -0.00110845587457712, -0.0010988693663578895, -0.0010882663676571244, -0.0010766458418348251, -0.0010640072735802143, -0.0010503518239957826, -0.0010356821468104041, -0.0010200018714693214, -0.0010033157303544313, -0.000985629760693179, -0.0009669515631450903, -0.0009472899718477435, -0.0009266549999954207, -0.0009050579826107043, -0.0008825115697880996, -0.0008590299683449941, -0.0008346286688776923, -0.0008093242093186422, -0.0007831344484904399, -0.0007560787238727222, -0.0007281777992737946, -0.0006994535909524986, -0.0006699292108326442, -0.0006396291849638128, -0.0006085793855511994, -0.0005768070388328386, -0.0005443406366124165, -0.0005112097970335273, -0.00047744526762494543, -0.00044307897054750035, -0.00040814409766798117, -0.0003726750006857615, -0.0003367070808797812, -0.00030027682371347247, -0.0002634218056255867, -0.00022618073814697159, -0.00018859337566807589, -0.0001507003780746852, -0.00011254324298833094, -0.00007416428731734924, -0.00003560670730199985, 0.000003085523548063785, 0.000041867710432921324, 0.00008069434503517607, 0.00011951910789599325, 0.00015829502033131527, 0.00019697472076561434, 0.00023551045567409698, 0.000273853967149023, 0.0003119566063859104, 0.0003497693944357311, 0.0003872430841974543, 0.0004243281073189398, 0.00046097456525713825, 0.0004971324209116283, 0.000532751652541773, 0.0005677825044850944, 0.0006021753837116698, 0.0006358806886685873, 0.0006688490401380291, 0.0007010312176003141, 0.0007323781414864676, 0.0007628410971964845, 0.0007923721224082782, 0.0008209242042168955, 0.000848450750988169, 0.0008749056596557243, 0.0009002434389593702, 0.0009244189680276405, 0.0009473882280306129, 0.0009691087604070867, 0.0009895395597688055, 0.0010086402935785192, 0.001026370720635107, 0.0010426918893056865, 0.0010575665723725415, 0.001070959957358151, 0.0010828391940482756, 0.0010931703343583935, 0.0011019202109286796, 0.0011090596487870318, 0.0011145630445275898, 0.0011184043786736124, 0.001120554074746838, 0.0011209917680571181, 0.0011197029937617083, 0.0011166562966771064, 0.0011118464276884984, 0.0011052512953704699, 0.0010968607244598726, 0.0010866638388056194, 0.0010746506726143957, 0.001060816695739025, 0.001045155823714897, 0.0010276670439197623, 0.001008351157157161, 0.0009872096007023739, 0.0009642482949221396, 0.0009394748128782626, 0.0009128984193201994, 0.0008845315727779604, 0.0008543893284299989, 0.0008224889133179016, 0.0007888494392687725, 0.0007534931574735429, 0.0007164452155151603, 0.0006777324637972142, 0.0006373842981041069, 0.0005954329812500334, 0.0005519133506181678, 0.0005068625728051466, 0.00046032000323413937, 0.0004123276053463404, 0.00036292989933373846, 0.00031217386261437, 0.00026010877383320427, 0.0002067859842737511, 0.00015225938436383264, 0.0000965854576875034, 0.00003982286749323625, -0.0000179677059230694, -0.00007672351611450484, -0.00013637955229787953, -0.00019686867752685767, -0.00025812174980963077, -0.0003200676217906621, -0.0003826333414430741, -0.0004457441136063003, -0.0005093232294712956, -0.0005732921654282367, -0.00063757077202539, -0.0007020774864868515, -0.0007667293014381896, -0.000831441760556577, -0.0008961290102706094, -0.0009607038567017785, -0.0010250779361669813, -0.0010891617777670183, -0.0011528648888359837, -0.0012160958997774157, -0.001278762708717709, -0.0013407725703934634, -0.0014020320140358438, -0.0014624469501256642, -0.0015219229140548082, -0.0015803651881932726, -0.0016376788121915474, -0.0016937685933671551, -0.0017485393883605888, -0.0018018962922161296, -0.001853744622258798, -0.0019039899562331246, -0.0019525381533939561, -0.001999295568971595, -0.0020441692691091497, -0.0020870671590057003, -0.0021278980935438433, -0.002166571859834074, -0.0022029993905251185, -0.002237092766198614, -0.0022687651100535395, -0.0022979310017697827, -0.002324506765063281, -0.002348410532134342, -0.0023695620904663124, -0.002387882877950405, -0.0024032962764901395, -0.002415727498004215, -0.0024251041062769677, -0.0024313565047816045, -0.002434417346479244, -0.002434221285942243, -0.0024307050845577974, -0.0024238084309784105, -0.0024134744272458933, -0.0023996490147598095, -0.0023822808507958644, -0.002361320552774569, -0.0023367219180767287, -0.0023084438037733195, -0.0022764477146557157, -0.0022406968577953325, -0.0022011577213322964, -0.002157802353593739, -0.0021106071299345493, -0.0020595468628108226, -0.0020046032562800113, -0.0019457662560451291, -0.0018830178785251698, -0.0018163568650903469, -0.0017457762721459498, -0.0016712774888046648, -0.0015928655517344435, -0.0015105465040104254, -0.0014243352289427366, -0.001334245183172585, -0.0012402971508224737, -0.001142515914146565, -0.001040927635788706, -0.0009355648118899454, -0.0008264637875103248, -0.0007136636835055012, -0.0005972078914059598, -0.00047714437051389635, -0.0003535251665308113, -0.00022640509673521253, -0.00009584304366831371, 0.00003809737583447662, 0.000175349189952471, 0.0003158420005530984, 0.00045950168388054715, 0.0006062501796784794, 0.0007560055720837391, 0.0009086826695053086, 0.0010641930047446363, 0.0012224448181092644, 0.001383342762009772, 0.0015467879147444098, 0.0017126784900794694, 0.0018809098064416602, 0.002051374038980255, 0.00222396027153397, 0.0023985546780390995, 0.00257504080294078, 0.002753299611825817, 0.0029332096760600742, 0.0031146471999652266, 0.00329748586141485, 0.0034815970640890118, 0.0036668502022383534, 0.0038531128164763875, 0.004040250654892737, 0.004228127702681014, 0.004416606372309768, 0.004605547604211298, 0.004794811008263008, 0.004984255005236749, 0.005173736922644052, 0.005363113237573505, 0.005552239713188401, 0.005740971456077898, 0.005929163001618124, 0.006116668526010137, 0.006303342137957434, 0.006489037895773713, 0.006673609810898314, 0.006856912040272674, 0.007038799176867838, 0.007219126469467923, 0.00739774981209459, 0.007574525856115118, 0.00774931217821552, 0.007921967422212448, 0.008092351521264793, 0.008260325786691655, 0.0084257530686515, 0.008588497916423984, 0.008748426684777003, 0.008905407631376806, 0.00905931090707958, 0.009210008945621842, 0.009357376767512868, 0.0095012918586961, 0.009641634222518982, 0.009778286439590446, 0.009911133869143742, 0.010040064826756685, 0.010164970855541414, 0.010285747084632053, 0.01040229168758197, 0.010514505774592219, 0.010622294054150362, 0.010725565119997272, 0.010824231613731668, 0.010918209734582957, 0.011007419162404072, 0.01109178352506284, 0.011171230745049823, 0.011245693678816775, 0.011315108689601935, 0.011379415321537538, 0.011438558592290933, 0.011492488522300438, 0.011541158942797008, 0.01158452699694985, 0.011622555335241312, 0.011655213312299231, 0.011682471044774176, 0.011704304362857888, 0.011720697805424401, 0.011731632913262123, 0.011737103714478897, 0.011737103714478897, 0.011731632913262123, 0.011720697805424401, 0.011704304362857888, 0.011682471044774176, 0.011655213312299231, 0.011622555335241312, 0.01158452699694985, 0.011541158942797008, 0.011492488522300438, 0.011438558592290933, 0.011379415321537538, 0.011315108689601935, 0.011245693678816775, 0.011171230745049823, 0.01109178352506284, 0.011007419162404072, 0.010918209734582957, 0.010824231613731668, 0.010725565119997272, 0.010622294054150362, 0.010514505774592219, 0.01040229168758197, 0.010285747084632053, 0.010164970855541414, 0.010040064826756685, 0.009911133869143742, 0.009778286439590446, 0.009641634222518982, 0.0095012918586961, 0.009357376767512868, 0.009210008945621842, 0.00905931090707958, 0.008905407631376806, 0.008748426684777003, 0.008588497916423984, 0.0084257530686515, 0.008260325786691655, 0.008092351521264793, 0.007921967422212448, 0.00774931217821552, 0.007574525856115118, 0.00739774981209459, 0.007219126469467923, 0.007038799176867838, 0.006856912040272674, 0.006673609810898314, 0.006489037895773713, 0.006303342137957434, 0.006116668526010137, 0.005929163001618124, 0.005740971456077898, 0.005552239713188401, 0.005363113237573505, 0.005173736922644052, 0.004984255005236749, 0.004794811008263008, 0.004605547604211298, 0.004416606372309768, 0.004228127702681014, 0.004040250654892737, 0.0038531128164763875, 0.0036668502022383534, 0.0034815970640890118, 0.00329748586141485, 0.0031146471999652266, 0.0029332096760600742, 0.002753299611825817, 0.00257504080294078, 0.0023985546780390995, 0.00222396027153397, 0.002051374038980255, 0.0018809098064416602, 0.0017126784900794694, 0.0015467879147444098, 0.001383342762009772, 0.0012224448181092644, 0.0010641930047446363, 0.0009086826695053086, 0.0007560055720837391, 0.0006062501796784794, 0.00045950168388054715, 0.0003158420005530984, 0.000175349189952471, 0.00003809737583447662, -0.00009584304366831371, -0.00022640509673521253, -0.0003535251665308113, -0.00047714437051389635, -0.0005972078914059598, -0.0007136636835055012, -0.0008264637875103248, -0.0009355648118899454, -0.001040927635788706, -0.001142515914146565, -0.0012402971508224737, -0.001334245183172585, -0.0014243352289427366, -0.0015105465040104254, -0.0015928655517344435, -0.0016712774888046648, -0.0017457762721459498, -0.0018163568650903469, -0.0018830178785251698, -0.0019457662560451291, -0.0020046032562800113, -0.0020595468628108226, -0.0021106071299345493, -0.002157802353593739, -0.0022011577213322964, -0.0022406968577953325, -0.0022764477146557157, -0.0023084438037733195, -0.0023367219180767287, -0.002361320552774569, -0.0023822808507958644, -0.0023996490147598095, -0.0024134744272458933, -0.0024238084309784105, -0.0024307050845577974, -0.002434221285942243, -0.002434417346479244, -0.0024313565047816045, -0.0024251041062769677, -0.002415727498004215, -0.0024032962764901395, -0.002387882877950405, -0.0023695620904663124, -0.002348410532134342, -0.002324506765063281, -0.0022979310017697827, -0.0022687651100535395, -0.002237092766198614, -0.0022029993905251185, -0.002166571859834074, -0.0021278980935438433, -0.0020870671590057003, -0.0020441692691091497, -0.001999295568971595, -0.0019525381533939561, -0.0019039899562331246, -0.001853744622258798, -0.0018018962922161296, -0.0017485393883605888, -0.0016937685933671551, -0.0016376788121915474, -0.0015803651881932726, -0.0015219229140548082, -0.0014624469501256642, -0.0014020320140358438, -0.0013407725703934634, -0.001278762708717709, -0.0012160958997774157, -0.0011528648888359837, -0.0010891617777670183, -0.0010250779361669813, -0.0009607038567017785, -0.0008961290102706094, -0.000831441760556577, -0.0007667293014381896, -0.0007020774864868515, -0.00063757077202539, -0.0005732921654282367, -0.0005093232294712956, -0.0004457441136063003, -0.0003826333414430741, -0.0003200676217906621, -0.00025812174980963077, -0.00019686867752685767, -0.00013637955229787953, -0.00007672351611450484, -0.0000179677059230694, 0.00003982286749323625, 0.0000965854576875034, 0.00015225938436383264, 0.0002067859842737511, 0.00026010877383320427, 0.00031217386261437, 0.00036292989933373846, 0.0004123276053463404, 0.00046032000323413937, 0.0005068625728051466, 0.0005519133506181678, 0.0005954329812500334, 0.0006373842981041069, 0.0006777324637972142, 0.0007164452155151603, 0.0007534931574735429, 0.0007888494392687725, 0.0008224889133179016, 0.0008543893284299989, 0.0008845315727779604, 0.0009128984193201994, 0.0009394748128782626, 0.0009642482949221396, 0.0009872096007023739, 0.001008351157157161, 0.0010276670439197623, 0.001045155823714897, 0.001060816695739025, 0.0010746506726143957, 0.0010866638388056194, 0.0010968607244598726, 0.0011052512953704699, 0.0011118464276884984, 0.0011166562966771064, 0.0011197029937617083, 0.0011209917680571181, 0.001120554074746838, 0.0011184043786736124, 0.0011145630445275898, 0.0011090596487870318, 0.0011019202109286796, 0.0010931703343583935, 0.0010828391940482756, 0.001070959957358151, 0.0010575665723725415, 0.0010426918893056865, 0.001026370720635107, 0.0010086402935785192, 0.0009895395597688055, 0.0009691087604070867, 0.0009473882280306129, 0.0009244189680276405, 0.0009002434389593702, 0.0008749056596557243, 0.000848450750988169, 0.0008209242042168955, 0.0007923721224082782, 0.0007628410971964845, 0.0007323781414864676, 0.0007010312176003141, 0.0006688490401380291, 0.0006358806886685873, 0.0006021753837116698, 0.0005677825044850944, 0.000532751652541773, 0.0004971324209116283, 0.00046097456525713825, 0.0004243281073189398, 0.0003872430841974543, 0.0003497693944357311, 0.0003119566063859104, 0.000273853967149023, 0.00023551045567409698, 0.00019697472076561434, 0.00015829502033131527, 0.00011951910789599325, 0.00008069434503517607, 0.000041867710432921324, 0.000003085523548063785, -0.00003560670730199985, -0.00007416428731734924, -0.00011254324298833094, -0.0001507003780746852, -0.00018859337566807589, -0.00022618073814697159, -0.0002634218056255867, -0.00030027682371347247, -0.0003367070808797812, -0.0003726750006857615, -0.00040814409766798117, -0.00044307897054750035, -0.00047744526762494543, -0.0005112097970335273, -0.0005443406366124165, -0.0005768070388328386, -0.0006085793855511994, -0.0006396291849638128, -0.0006699292108326442, -0.0006994535909524986, -0.0007281777992737946, -0.0007560787238727222, -0.0007831344484904399, -0.0008093242093186422, -0.0008346286688776923, -0.0008590299683449941, -0.0008825115697880996, -0.0009050579826107043, -0.0009266549999954207, -0.0009472899718477435, -0.0009669515631450903, -0.000985629760693179, -0.0010033157303544313, -0.0010200018714693214, -0.0010356821468104041, -0.0010503518239957826, -0.0010640072735802143, -0.0010766458418348251, -0.0010882663676571244, -0.0010988693663578895, -0.00110845587457712, -0.0011170279740759658, -0.0011245894559787622, -0.0011311451534842774, -0.001136700795386366, -0.0011412629577426628, -0.00114484006082293, -0.0011474412643782891, -0.001149075700165883, -0.0011497552449535495, -0.0011494916928265647, -0.0011482970085184934, -0.0011461862709457055, -0.001143172631327465, -0.0011392722062450377, -0.001134502525433292, -0.0011288733610789721, -0.0011224205008357393, -0.001115133482641312, -0.0011070578885002702, -0.001098205538071845, -0.0010885880181663468, -0.0010782313132298208, -0.001067160927893583, -0.0010553976134962566, -0.0010429598373262593, -0.0010298692409237303, -0.001016150958603644, -0.0010018296635038234, -0.000986929306593871, -0.0009714727766152153, -0.0009554827702629912, -0.0009389835464993075, -0.000922000299232565, -0.0009045584634477986, -0.0008866831646045461, -0.0008683991132471614, -0.0008497307715244494, -0.0008307023010845163, -0.0008113383362587028, -0.0007916639719227004, -0.000771704162227947, -0.0007514837903863777, -0.000731027532147202, -0.000710359669543136, -0.0006895039843981559, -0.0006684839703829051, -0.0006473231692560336, -0.0006260449390330644, -0.0006046723908249317, -0.0005832284295812785, -0.0005617356366067017, -0.0005402162469729259, -0.0005186919510053738, -0.0004971838198071831, -0.0004757124161811035, -0.00045429794314525324, -0.00043296032505169577, -0.00041171900064429, -0.00039059290984859706, -0.0003696006180382817, -0.0003487602312779994, -0.00032808926773727473, -0.0003076045740274102, -0.00028732242720909374, -0.00026725858015049425, -0.00024742817471772824, -0.00022784574374784246, -0.00020852521704417434, -0.0001894800112434245, -0.00017072306915224178, -0.0001522667855569792, -0.000134122927443183, -0.00011630254584578235, -0.00009881608266779326, -0.00008167344072768395, -0.00006488392097284113, -0.00004845619470295486, -0.00003239824489309241, -0.000016717431552354825, -0.0000014205550195404417, 0.000013486064917873263, 0.000027996578416041823, 0.000042105866991998394, 0.00005580947004681174, 0.00006910334679829026, 0.00008198390428241564, 0.00009444816369190979, 0.00010649390448787931, 0.00011811939311034222, 0.00012932331202118152, 0.00014010492118016657, 0.00015046397564821766, 0.00016040086314937234, 0.0001699163889323255, 0.00017901156693343162, 0.00018768793613519225, 0.00019594765441000844, 0.00020379342129965214, 0.0002112279751888258, 0.00021825436568685826, 0.0002248766203312044, 0.00023109887243694582, 0.00023692535214431433, 0.00024236092911432053, 0.00024741089077219824, 0.00025208079324849864, 0.0002563760351381784, 0.00026030295633048156, 0.0002638682356241208, 0.0002670776879725044, 0.0002699387312629035, 0.00027245845620400524, 0.00027464338678576605, 0.0002765020258372484, 0.0002780409500002217, 0.00027926833477321045, 0.000280197444464886, 0.0002808065268305555, 0.0002811853995116189, 0.0002812218387032567, 0.0002810071637276198, 0.0002805501390130166, 0.0002798371088712506, 0.0002788693645809233, 0.0002776600678298683, 0.0002762259706331217, 0.0002745790007011535, 0.00027272653793114146, 0.0002706745796903796, 0.00026842872851524756, 0.000265996883919168, 0.00026338871874574443, 0.000260614166491108, 0.00025768336513093236, 0.00025460575109546185, 0.00025138980120093706, 0.00024804316088030066, 0.0002445732198467269, 0.00024098757818162363, 0.00023729369397980805, 0.00023349938436811445, 0.0002296129456080256, 0.0002256425365807074, 0.00022159611743123445, 0.00021748145118260308, 0.00021330607883745088, 0.00020907706346541747, 0.00020480094575553342, 0.00020048414321002534, 0.00019613295450734188, 0.000191753562437378, 0.00018735205242694257, 0.0001829343448175031, 0.00017850636200629103, 0.0001740740165774301, 0.0001696430686231646, 0.00016521898552431528, 0.0001608069510673283, 0.00015641203030453322, 0.0001520390228045441, 0.0001476923508970611, 0.0001433761787732808, 0.0001390945080465441, 0.00013485120459499745, 0.0001306498943438022, 0.0001264939791526471, 0.0001223867211507117, 0.00011833127277888537, 0.00011433071893118852, 0.00011038797758602729, 0.00010650572670297642, 0.00010268641529207459, 0.0000989323217880672, 0.00009524561718379787, 0.00009162826246394013, 0.00008808197111592392, 0.00008460822180317937, 0.00008120828768996651, 0.00007788334878376474, 0.00007463447593939765, 0.00007146257248874113, 0.00006836828400903681, 0.0000653520878490535, 0.00006241451652786996, 0.00005955600371707976, 0.00005677675565218903, 0.000054076836400090634, 0.000051456283434024254, 0.00004891512239763599, 0.00004645314118637872, 0.00004406996003435772, 0.000041765124869157065, 0.00003953809180607858, 0.000037388352711032095, 0.00003531515315607694, 0.0000333174817796639, 0.000031394387750225555, 0.00002954497152514943, 0.00002776823090942686, 0.000026062787460182665, 0.00002442737159197627, 0.000022860960742170415, 0.00002136207377464052, 0.00001992924403854817, 0.000018561209740219567, 0.00001725659281802051, 0.00001601386713533323, 0.000014831347439124435, 0.00001370786337628007, 0.000012641797347255405, 0.000011631201209261511, 0.00001067513223630924, 0.000009771649771624484, 0.000008919034969234169, 0.000008116254962232182, 0.000007360859185648702, 0.000006651966903409214, 0.0000059874129268137184, 0.0000053659189590266235, 0.000022913289467138396
4446 };
4547
48+
4649 const float* __leaf_tableref_firCoeffs[COEFFS_SIZE] = { __leaf_table_fir2XLow, __leaf_table_fir4XLow, __leaf_table_fir8XLow, __leaf_table_fir16XLow, __leaf_table_fir32XLow, __leaf_table_fir64XLow, __leaf_table_fir2XHigh, __leaf_table_fir4XHigh, __leaf_table_fir8XHigh, __leaf_table_fir16XHigh, __leaf_table_fir32XHigh, __leaf_table_fir64XHigh
4750 };
4851
4952 const float __leaf_tablesize_firNumTaps[COEFFS_SIZE] = { 32, 32, 64, 128, 256, 256, 128, 256, 256, 512, 512, 1024 };
5053
54+
55+#ifdef USE_SHAPER_TABLE
5156 const float __leaf_table_shaper1[SHAPER1_TABLE_SIZE] = {0.333061f, 0.333022f, 0.332983f, 0.332944f, 0.332905f, 0.332866f, 0.332827f, 0.332788f, 0.332749f, 0.33271f, 0.332671f, 0.332632f, 0.332593f, 0.332554f, 0.332515f, 0.332475f, 0.332436f, 0.332397f, 0.332358f, 0.332319f,
5257 0.33228f, 0.33224f, 0.332201f, 0.332162f, 0.332123f, 0.332083f, 0.332044f, 0.332005f, 0.331966f, 0.331926f, 0.331887f, 0.331848f, 0.331808f, 0.331769f, 0.33173f, 0.33169f, 0.331651f, 0.331611f, 0.331572f, 0.331533f,
5358 0.331493f, 0.331454f, 0.331414f, 0.331375f, 0.331335f, 0.331296f, 0.331256f, 0.331217f, 0.331177f, 0.331138f, 0.331098f, 0.331059f, 0.331019f, 0.330979f, 0.33094f, 0.3309f, 0.330861f, 0.330821f, 0.330781f, 0.330742f,
@@ -3325,7 +3330,10 @@ const float __leaf_table_shaper1[SHAPER1_TABLE_SIZE] = {0.333061f, 0.333022f, 0. · 3271 unmodified lines
33253330 -0.219509f, -0.219555f, -0.219601f, -0.219648f, -0.219694f, -0.21974f, -0.219787f, -0.219833f, -0.219879f, -0.219925f, -0.219972f, -0.220018f, -0.220064f, -0.22011f, -0.220156f, -0.220203f, -0.220249f, -0.220295f, -0.220341f, -0.220387f,
33263331 -0.220433f, -0.220479f, -0.220526f, -0.220572f, -0.220618f, -0.220664f, -0.22071f, -0.220756f, -0.220802f, -0.220848f, -0.220894f, -0.22094f, -0.220986f, -0.221032f, -0.221078f, -0.221124f, -0.22117f, -0.221216f, -0.221262f, -0.221308f,
33273332 -0.221354f, -0.221399f, -0.221445f, -0.221491f, -0.221537f, -0.221583f, -0.221629f, -0.221675f, -0.22172f, -0.221766f, -0.221812f, -0.221858f, -0.221904f, -0.221949f, -0.221995f, -0.222041f, };
3333+#endif
3334+
33283335
3336+#ifdef USE_SAWTOOTH_TABLE
33293337 const float __leaf_table_sawtooth[11][SAW_TABLE_SIZE] =
33303338 {
33313339
@@ -3374,7 +3382,9 @@ const float __leaf_table_sawtooth[11][SAW_TABLE_SIZE] = · 42 unmodified lines
33743382 },
33753383
33763384 };
3385+#endif
33773386
3387+#ifdef USE_TRIANGLE_TABLE
33783388
33793389 const float __leaf_table_triangle[11][TRI_TABLE_SIZE] =
33803390 {
@@ -3423,7 +3433,9 @@ const float __leaf_table_triangle[11][TRI_TABLE_SIZE] = · 42 unmodified lines
34233433 0.0f, 0.002301f, 0.004602f, 0.006903f, 0.009204f, 0.011504f, 0.013805f, 0.016106f, 0.018406f, 0.020706f, 0.023006f, 0.025306f, 0.027605f, 0.029905f, 0.032204f, 0.034502f, 0.036801f, 0.039099f, 0.041396f, 0.043694f, 0.045991f, 0.048287f, 0.050583f, 0.052878f, 0.055173f, 0.057468f, 0.059762f, 0.062055f, 0.064348f, 0.06664f, 0.068932f, 0.071223f, 0.073513f, 0.075802f, 0.078091f, 0.080379f, 0.082667f, 0.084953f, 0.087239f, 0.089524f, 0.091808f, 0.094091f, 0.096374f, 0.098655f, 0.100936f, 0.103215f, 0.105494f, 0.107771f, 0.110048f, 0.112323f, 0.114598f, 0.116871f, 0.119144f, 0.121415f, 0.123685f, 0.125954f, 0.128221f, 0.130488f, 0.132753f, 0.135017f, 0.13728f, 0.139541f, 0.141802f, 0.14406f, 0.146318f, 0.148574f, 0.150828f, 0.153082f, 0.155334f, 0.157584f, 0.159833f, 0.16208f, 0.164326f, 0.16657f, 0.168813f, 0.171054f, 0.173294f, 0.175531f, 0.177768f, 0.180002f, 0.182235f, 0.184466f, 0.186696f, 0.188923f, 0.191149f, 0.193373f, 0.195596f, 0.197816f, 0.200035f, 0.202251f, 0.204466f, 0.206679f, 0.20889f, 0.211099f, 0.213306f, 0.215511f, 0.217714f, 0.219914f, 0.222113f, 0.22431f, 0.226504f, 0.228697f, 0.230887f, 0.233075f, 0.235261f, 0.237445f, 0.239627f, 0.241806f, 0.243983f, 0.246157f, 0.24833f, 0.2505f, 0.252667f, 0.254833f, 0.256996f, 0.259156f, 0.261314f, 0.26347f, 0.265623f, 0.267773f, 0.269921f, 0.272067f, 0.27421f, 0.27635f, 0.278488f, 0.280623f, 0.282756f, 0.284885f, 0.287013f, 0.289137f, 0.291259f, 0.293378f, 0.295494f, 0.297607f, 0.299718f, 0.301826f, 0.303931f, 0.306033f, 0.308132f, 0.310229f, 0.312322f, 0.314413f, 0.3165f, 0.318585f, 0.320666f, 0.322745f, 0.32482f, 0.326893f, 0.328962f, 0.331028f, 0.333092f, 0.335152f, 0.337208f, 0.339262f, 0.341313f, 0.34336f, 0.345404f, 0.347445f, 0.349482f, 0.351517f, 0.353548f, 0.355575f, 0.357599f, 0.35962f, 0.361638f, 0.363652f, 0.365663f, 0.36767f, 0.369674f, 0.371674f, 0.373671f, 0.375664f, 0.377654f, 0.37964f, 0.381623f, 0.383602f, 0.385577f, 0.387549f, 0.389517f, 0.391481f, 0.393442f, 0.395399f, 0.397353f, 0.399302f, 0.401248f, 0.40319f, 0.405129f, 0.407063f, 0.408994f, 0.410921f, 0.412843f, 0.414763f, 0.416678f, 0.418589f, 0.420496f, 0.4224f, 0.424299f, 0.426194f, 0.428086f, 0.429973f, 0.431856f, 0.433735f, 0.43561f, 0.437481f, 0.439348f, 0.441211f, 0.44307f, 0.444924f, 0.446774f, 0.448621f, 0.450462f, 0.4523f, 0.454133f, 0.455962f, 0.457787f, 0.459608f, 0.461424f, 0.463235f, 0.465043f, 0.466846f, 0.468645f, 0.470439f, 0.472229f, 0.474014f, 0.475795f, 0.477571f, 0.479343f, 0.481111f, 0.482874f, 0.484632f, 0.486386f, 0.488135f, 0.48988f, 0.49162f, 0.493355f, 0.495086f, 0.496812f, 0.498533f, 0.50025f, 0.501962f, 0.503669f, 0.505372f, 0.50707f, 0.508763f, 0.510451f, 0.512134f, 0.513813f, 0.515487f, 0.517155f, 0.518819f, 0.520479f, 0.522133f, 0.523782f, 0.525427f, 0.527066f, 0.528701f, 0.53033f, 0.531955f, 0.533574f, 0.535189f, 0.536798f, 0.538403f, 0.540002f, 0.541596f, 0.543185f, 0.544769f, 0.546348f, 0.547922f, 0.549491f, 0.551054f, 0.552612f, 0.554165f, 0.555713f, 0.557256f, 0.558793f, 0.560325f, 0.561852f, 0.563374f, 0.56489f, 0.566401f, 0.567907f, 0.569407f, 0.570902f, 0.572391f, 0.573875f, 0.575354f, 0.576828f, 0.578295f, 0.579758f, 0.581215f, 0.582666f, 0.584112f, 0.585553f, 0.586988f, 0.588417f, 0.589841f, 0.59126f, 0.592673f, 0.59408f, 0.595482f, 0.596878f, 0.598268f, 0.599653f, 0.601032f, 0.602406f, 0.603773f, 0.605136f, 0.606492f, 0.607843f, 0.609188f, 0.610527f, 0.611861f, 0.613189f, 0.614511f, 0.615827f, 0.617137f, 0.618442f, 0.619741f, 0.621034f, 0.622321f, 0.623602f, 0.624878f, 0.626147f, 0.627411f, 0.628669f, 0.62992f, 0.631166f, 0.632406f, 0.63364f, 0.634868f, 0.63609f, 0.637306f, 0.638516f, 0.63972f, 0.640918f, 0.64211f, 0.643296f, 0.644476f, 0.64565f, 0.646818f, 0.64798f, 0.649135f, 0.650285f, 0.651428f, 0.652565f, 0.653696f, 0.654821f, 0.65594f, 0.657053f, 0.658159f, 0.659259f, 0.660353f, 0.661441f, 0.662523f, 0.663598f, 0.664667f, 0.66573f, 0.666786f, 0.667837f, 0.668881f, 0.669918f, 0.67095f, 0.671975f, 0.672993f, 0.674006f, 0.675012f, 0.676012f, 0.677005f, 0.677992f, 0.678973f, 0.679947f, 0.680915f, 0.681876f, 0.682831f, 0.68378f, 0.684722f, 0.685657f, 0.686587f, 0.687509f, 0.688426f, 0.689335f, 0.690239f, 0.691136f, 0.692026f, 0.69291f, 0.693787f, 0.694658f, 0.695522f, 0.69638f, 0.697231f, 0.698075f, 0.698913f, 0.699745f, 0.700569f, 0.701388f, 0.702199f, 0.703004f, 0.703803f, 0.704594f, 0.70538f, 0.706158f, 0.70693f, 0.707695f, 0.708454f, 0.709205f, 0.709951f, 0.710689f, 0.711421f, 0.712146f, 0.712865f, 0.713576f, 0.714281f, 0.71498f, 0.715671f, 0.716356f, 0.717034f, 0.717705f, 0.71837f, 0.719028f, 0.719679f, 0.720323f, 0.72096f, 0.721591f, 0.722215f, 0.722832f, 0.723442f, 0.724046f, 0.724643f, 0.725232f, 0.725815f, 0.726392f, 0.726961f, 0.727523f, 0.728079f, 0.728628f, 0.72917f, 0.729705f, 0.730233f, 0.730755f, 0.731269f, 0.731777f, 0.732277f, 0.732771f, 0.733258f, 0.733738f, 0.734211f, 0.734677f, 0.735137f, 0.735589f, 0.736034f, 0.736473f, 0.736904f, 0.737329f, 0.737747f, 0.738158f, 0.738561f, 0.738958f, 0.739348f, 0.739731f, 0.740107f, 0.740476f, 0.740838f, 0.741193f, 0.741541f, 0.741882f, 0.742217f, 0.742544f, 0.742864f, 0.743177f, 0.743483f, 0.743782f, 0.744074f, 0.74436f, 0.744638f, 0.744909f, 0.745173f, 0.74543f, 0.74568f, 0.745923f, 0.746159f, 0.746389f, 0.746611f, 0.746826f, 0.747034f, 0.747234f, 0.747428f, 0.747615f, 0.747795f, 0.747968f, 0.748134f, 0.748292f, 0.748444f, 0.748589f, 0.748726f, 0.748857f, 0.74898f, 0.749097f, 0.749206f, 0.749308f, 0.749404f, 0.749492f, 0.749573f, 0.749647f, 0.749714f, 0.749774f, 0.749827f, 0.749873f, 0.749912f, 0.749944f, 0.749968f, 0.749986f, 0.749996f, 0.75f, 0.749996f, 0.749986f, 0.749968f, 0.749944f, 0.749912f, 0.749873f, 0.749827f, 0.749774f, 0.749714f, 0.749647f, 0.749573f, 0.749492f, 0.749404f, 0.749308f, 0.749206f, 0.749097f, 0.74898f, 0.748857f, 0.748726f, 0.748589f, 0.748444f, 0.748292f, 0.748134f, 0.747968f, 0.747795f, 0.747615f, 0.747428f, 0.747234f, 0.747034f, 0.746826f, 0.746611f, 0.746389f, 0.746159f, 0.745923f, 0.74568f, 0.74543f, 0.745173f, 0.744909f, 0.744638f, 0.74436f, 0.744074f, 0.743782f, 0.743483f, 0.743177f, 0.742864f, 0.742544f, 0.742217f, 0.741882f, 0.741541f, 0.741193f, 0.740838f, 0.740476f, 0.740107f, 0.739731f, 0.739348f, 0.738958f, 0.738561f, 0.738158f, 0.737747f, 0.737329f, 0.736904f, 0.736473f, 0.736034f, 0.735589f, 0.735137f, 0.734677f, 0.734211f, 0.733738f, 0.733258f, 0.732771f, 0.732277f, 0.731777f, 0.731269f, 0.730755f, 0.730233f, 0.729705f, 0.72917f, 0.728628f, 0.728079f, 0.727523f, 0.726961f, 0.726392f, 0.725815f, 0.725232f, 0.724643f, 0.724046f, 0.723442f, 0.722832f, 0.722215f, 0.721591f, 0.72096f, 0.720323f, 0.719679f, 0.719028f, 0.71837f, 0.717705f, 0.717034f, 0.716356f, 0.715671f, 0.71498f, 0.714281f, 0.713576f, 0.712865f, 0.712146f, 0.711421f, 0.710689f, 0.709951f, 0.709205f, 0.708454f, 0.707695f, 0.70693f, 0.706158f, 0.70538f, 0.704594f, 0.703803f, 0.703004f, 0.702199f, 0.701388f, 0.700569f, 0.699745f, 0.698913f, 0.698075f, 0.697231f, 0.69638f, 0.695522f, 0.694658f, 0.693787f, 0.69291f, 0.692026f, 0.691136f, 0.690239f, 0.689335f, 0.688426f, 0.687509f, 0.686587f, 0.685657f, 0.684722f, 0.68378f, 0.682831f, 0.681876f, 0.680915f, 0.679947f, 0.678973f, 0.677992f, 0.677005f, 0.676012f, 0.675012f, 0.674006f, 0.672993f, 0.671975f, 0.67095f, 0.669918f, 0.668881f, 0.667837f, 0.666786f, 0.66573f, 0.664667f, 0.663598f, 0.662523f, 0.661441f, 0.660353f, 0.659259f, 0.658159f, 0.657053f, 0.65594f, 0.654821f, 0.653696f, 0.652565f, 0.651428f, 0.650285f, 0.649135f, 0.64798f, 0.646818f, 0.64565f, 0.644476f, 0.643296f, 0.64211f, 0.640918f, 0.63972f, 0.638516f, 0.637306f, 0.63609f, 0.634868f, 0.63364f, 0.632406f, 0.631166f, 0.62992f, 0.628669f, 0.627411f, 0.626147f, 0.624878f, 0.623602f, 0.622321f, 0.621034f, 0.619741f, 0.618442f, 0.617137f, 0.615827f, 0.614511f, 0.613189f, 0.611861f, 0.610527f, 0.609188f, 0.607843f, 0.606492f, 0.605136f, 0.603773f, 0.602406f, 0.601032f, 0.599653f, 0.598268f, 0.596878f, 0.595482f, 0.59408f, 0.592673f, 0.59126f, 0.589841f, 0.588417f, 0.586988f, 0.585553f, 0.584112f, 0.582666f, 0.581215f, 0.579758f, 0.578295f, 0.576828f, 0.575354f, 0.573875f, 0.572391f, 0.570902f, 0.569407f, 0.567907f, 0.566401f, 0.56489f, 0.563374f, 0.561852f, 0.560325f, 0.558793f, 0.557256f, 0.555713f, 0.554165f, 0.552612f, 0.551054f, 0.549491f, 0.547922f, 0.546348f, 0.544769f, 0.543185f, 0.541596f, 0.540002f, 0.538403f, 0.536798f, 0.535189f, 0.533574f, 0.531955f, 0.53033f, 0.528701f, 0.527066f, 0.525427f, 0.523782f, 0.522133f, 0.520479f, 0.518819f, 0.517155f, 0.515487f, 0.513813f, 0.512134f, 0.510451f, 0.508763f, 0.50707f, 0.505372f, 0.503669f, 0.501962f, 0.50025f, 0.498533f, 0.496812f, 0.495086f, 0.493355f, 0.49162f, 0.48988f, 0.488135f, 0.486386f, 0.484632f, 0.482874f, 0.481111f, 0.479343f, 0.477571f, 0.475795f, 0.474014f, 0.472229f, 0.470439f, 0.468645f, 0.466846f, 0.465043f, 0.463235f, 0.461424f, 0.459608f, 0.457787f, 0.455962f, 0.454133f, 0.4523f, 0.450462f, 0.448621f, 0.446774f, 0.444924f, 0.44307f, 0.441211f, 0.439348f, 0.437481f, 0.43561f, 0.433735f, 0.431856f, 0.429973f, 0.428086f, 0.426194f, 0.424299f, 0.4224f, 0.420496f, 0.418589f, 0.416678f, 0.414763f, 0.412843f, 0.410921f, 0.408994f, 0.407063f, 0.405129f, 0.40319f, 0.401248f, 0.399302f, 0.397353f, 0.395399f, 0.393442f, 0.391481f, 0.389517f, 0.387549f, 0.385577f, 0.383602f, 0.381623f, 0.37964f, 0.377654f, 0.375664f, 0.373671f, 0.371674f, 0.369674f, 0.36767f, 0.365663f, 0.363652f, 0.361638f, 0.35962f, 0.357599f, 0.355575f, 0.353548f, 0.351517f, 0.349482f, 0.347445f, 0.345404f, 0.34336f, 0.341313f, 0.339262f, 0.337208f, 0.335152f, 0.333092f, 0.331028f, 0.328962f, 0.326893f, 0.32482f, 0.322745f, 0.320666f, 0.318585f, 0.3165f, 0.314413f, 0.312322f, 0.310229f, 0.308132f, 0.306033f, 0.303931f, 0.301826f, 0.299718f, 0.297607f, 0.295494f, 0.293378f, 0.291259f, 0.289137f, 0.287013f, 0.284885f, 0.282756f, 0.280623f, 0.278488f, 0.27635f, 0.27421f, 0.272067f, 0.269921f, 0.267773f, 0.265623f, 0.26347f, 0.261314f, 0.259156f, 0.256996f, 0.254833f, 0.252667f, 0.2505f, 0.24833f, 0.246157f, 0.243983f, 0.241806f, 0.239627f, 0.237445f, 0.235261f, 0.233075f, 0.230887f, 0.228697f, 0.226504f, 0.22431f, 0.222113f, 0.219914f, 0.217714f, 0.215511f, 0.213306f, 0.211099f, 0.20889f, 0.206679f, 0.204466f, 0.202251f, 0.200035f, 0.197816f, 0.195596f, 0.193373f, 0.191149f, 0.188923f, 0.186696f, 0.184466f, 0.182235f, 0.180002f, 0.177768f, 0.175531f, 0.173294f, 0.171054f, 0.168813f, 0.16657f, 0.164326f, 0.16208f, 0.159833f, 0.157584f, 0.155334f, 0.153082f, 0.150828f, 0.148574f, 0.146318f, 0.14406f, 0.141801f, 0.139541f, 0.13728f, 0.135017f, 0.132753f, 0.130488f, 0.128221f, 0.125954f, 0.123685f, 0.121415f, 0.119144f, 0.116871f, 0.114598f, 0.112323f, 0.110048f, 0.107771f, 0.105494f, 0.103215f, 0.100936f, 0.098655f, 0.096374f, 0.094091f, 0.091808f, 0.089524f, 0.087239f, 0.084953f, 0.082667f, 0.080379f, 0.078091f, 0.075802f, 0.073513f, 0.071223f, 0.068932f, 0.06664f, 0.064348f, 0.062055f, 0.059762f, 0.057468f, 0.055173f, 0.052878f, 0.050583f, 0.048287f, 0.045991f, 0.043694f, 0.041396f, 0.039099f, 0.036801f, 0.034502f, 0.032204f, 0.029905f, 0.027605f, 0.025306f, 0.023006f, 0.020706f, 0.018406f, 0.016106f, 0.013805f, 0.011504f, 0.009204f, 0.006903f, 0.004602f, 0.002301f, -0.0f, -0.002301f, -0.004602f, -0.006903f, -0.009204f, -0.011504f, -0.013805f, -0.016106f, -0.018406f, -0.020706f, -0.023006f, -0.025306f, -0.027605f, -0.029905f, -0.032204f, -0.034502f, -0.036801f, -0.039099f, -0.041396f, -0.043694f, -0.045991f, -0.048287f, -0.050583f, -0.052878f, -0.055173f, -0.057468f, -0.059762f, -0.062055f, -0.064348f, -0.06664f, -0.068932f, -0.071223f, -0.073513f, -0.075802f, -0.078091f, -0.080379f, -0.082667f, -0.084953f, -0.087239f, -0.089524f, -0.091808f, -0.094091f, -0.096374f, -0.098655f, -0.100936f, -0.103215f, -0.105494f, -0.107771f, -0.110048f, -0.112323f, -0.114598f, -0.116871f, -0.119144f, -0.121415f, -0.123685f, -0.125954f, -0.128221f, -0.130488f, -0.132753f, -0.135017f, -0.13728f, -0.139541f, -0.141801f, -0.14406f, -0.146318f, -0.148574f, -0.150828f, -0.153082f, -0.155334f, -0.157584f, -0.159833f, -0.16208f, -0.164326f, -0.16657f, -0.168813f, -0.171054f, -0.173294f, -0.175531f, -0.177768f, -0.180002f, -0.182235f, -0.184466f, -0.186696f, -0.188923f, -0.191149f, -0.193373f, -0.195596f, -0.197816f, -0.200035f, -0.202251f, -0.204466f, -0.206679f, -0.20889f, -0.211099f, -0.213306f, -0.215511f, -0.217714f, -0.219914f, -0.222113f, -0.22431f, -0.226504f, -0.228697f, -0.230887f, -0.233075f, -0.235261f, -0.237445f, -0.239627f, -0.241806f, -0.243983f, -0.246157f, -0.24833f, -0.2505f, -0.252667f, -0.254833f, -0.256996f, -0.259156f, -0.261314f, -0.26347f, -0.265623f, -0.267773f, -0.269921f, -0.272067f, -0.27421f, -0.27635f, -0.278488f, -0.280623f, -0.282756f, -0.284885f, -0.287013f, -0.289137f, -0.291259f, -0.293378f, -0.295494f, -0.297607f, -0.299718f, -0.301826f, -0.303931f, -0.306033f, -0.308132f, -0.310229f, -0.312322f, -0.314413f, -0.3165f, -0.318585f, -0.320666f, -0.322745f, -0.32482f, -0.326893f, -0.328962f, -0.331028f, -0.333092f, -0.335152f, -0.337208f, -0.339262f, -0.341313f, -0.34336f, -0.345404f, -0.347445f, -0.349482f, -0.351517f, -0.353548f, -0.355575f, -0.357599f, -0.35962f, -0.361638f, -0.363652f, -0.365663f, -0.36767f, -0.369674f, -0.371674f, -0.373671f, -0.375664f, -0.377654f, -0.37964f, -0.381623f, -0.383602f, -0.385577f, -0.387549f, -0.389517f, -0.391481f, -0.393442f, -0.395399f, -0.397353f, -0.399302f, -0.401248f, -0.40319f, -0.405129f, -0.407063f, -0.408994f, -0.410921f, -0.412843f, -0.414763f, -0.416678f, -0.418589f, -0.420496f, -0.4224f, -0.424299f, -0.426194f, -0.428086f, -0.429973f, -0.431856f, -0.433735f, -0.43561f, -0.437481f, -0.439348f, -0.441211f, -0.44307f, -0.444924f, -0.446774f, -0.448621f, -0.450462f, -0.4523f, -0.454133f, -0.455962f, -0.457787f, -0.459608f, -0.461424f, -0.463235f, -0.465043f, -0.466846f, -0.468645f, -0.470439f, -0.472229f, -0.474014f, -0.475795f, -0.477571f, -0.479343f, -0.481111f, -0.482874f, -0.484632f, -0.486386f, -0.488135f, -0.48988f, -0.49162f, -0.493355f, -0.495086f, -0.496812f, -0.498533f, -0.50025f, -0.501962f, -0.503669f, -0.505372f, -0.50707f, -0.508763f, -0.510451f, -0.512134f, -0.513813f, -0.515487f, -0.517155f, -0.518819f, -0.520479f, -0.522133f, -0.523782f, -0.525427f, -0.527066f, -0.528701f, -0.53033f, -0.531955f, -0.533574f, -0.535189f, -0.536798f, -0.538403f, -0.540002f, -0.541596f, -0.543185f, -0.544769f, -0.546348f, -0.547922f, -0.549491f, -0.551054f, -0.552612f, -0.554165f, -0.555713f, -0.557256f, -0.558793f, -0.560325f, -0.561852f, -0.563374f, -0.56489f, -0.566401f, -0.567907f, -0.569407f, -0.570902f, -0.572391f, -0.573875f, -0.575354f, -0.576828f, -0.578295f, -0.579758f, -0.581215f, -0.582666f, -0.584112f, -0.585553f, -0.586988f, -0.588417f, -0.589841f, -0.59126f, -0.592673f, -0.59408f, -0.595482f, -0.596878f, -0.598268f, -0.599653f, -0.601032f, -0.602406f, -0.603773f, -0.605136f, -0.606492f, -0.607843f, -0.609188f, -0.610527f, -0.611861f, -0.613189f, -0.614511f, -0.615827f, -0.617137f, -0.618442f, -0.619741f, -0.621034f, -0.622321f, -0.623602f, -0.624878f, -0.626147f, -0.627411f, -0.628669f, -0.62992f, -0.631166f, -0.632406f, -0.63364f, -0.634868f, -0.63609f, -0.637306f, -0.638516f, -0.63972f, -0.640918f, -0.64211f, -0.643296f, -0.644476f, -0.64565f, -0.646818f, -0.64798f, -0.649135f, -0.650285f, -0.651428f, -0.652565f, -0.653696f, -0.654821f, -0.65594f, -0.657053f, -0.658159f, -0.659259f, -0.660353f, -0.661441f, -0.662523f, -0.663598f, -0.664667f, -0.66573f, -0.666786f, -0.667837f, -0.668881f, -0.669918f, -0.67095f, -0.671975f, -0.672993f, -0.674006f, -0.675012f, -0.676012f, -0.677005f, -0.677992f, -0.678973f, -0.679947f, -0.680915f, -0.681876f, -0.682831f, -0.68378f, -0.684722f, -0.685657f, -0.686587f, -0.687509f, -0.688426f, -0.689335f, -0.690239f, -0.691136f, -0.692026f, -0.69291f, -0.693787f, -0.694658f, -0.695522f, -0.69638f, -0.697231f, -0.698075f, -0.698913f, -0.699745f, -0.700569f, -0.701388f, -0.702199f, -0.703004f, -0.703803f, -0.704594f, -0.70538f, -0.706158f, -0.70693f, -0.707695f, -0.708454f, -0.709205f, -0.709951f, -0.710689f, -0.711421f, -0.712146f, -0.712865f, -0.713576f, -0.714281f, -0.71498f, -0.715671f, -0.716356f, -0.717034f, -0.717705f, -0.71837f, -0.719028f, -0.719679f, -0.720323f, -0.72096f, -0.721591f, -0.722215f, -0.722832f, -0.723442f, -0.724046f, -0.724643f, -0.725232f, -0.725815f, -0.726392f, -0.726961f, -0.727523f, -0.728079f, -0.728628f, -0.72917f, -0.729705f, -0.730233f, -0.730755f, -0.731269f, -0.731777f, -0.732277f, -0.732771f, -0.733258f, -0.733738f, -0.734211f, -0.734677f, -0.735137f, -0.735589f, -0.736034f, -0.736473f, -0.736904f, -0.737329f, -0.737747f, -0.738158f, -0.738561f, -0.738958f, -0.739348f, -0.739731f, -0.740107f, -0.740476f, -0.740838f, -0.741193f, -0.741541f, -0.741882f, -0.742217f, -0.742544f, -0.742864f, -0.743177f, -0.743483f, -0.743782f, -0.744074f, -0.74436f, -0.744638f, -0.744909f, -0.745173f, -0.74543f, -0.74568f, -0.745923f, -0.746159f, -0.746389f, -0.746611f, -0.746826f, -0.747034f, -0.747234f, -0.747428f, -0.747615f, -0.747795f, -0.747968f, -0.748134f, -0.748292f, -0.748444f, -0.748589f, -0.748726f, -0.748857f, -0.74898f, -0.749097f, -0.749206f, -0.749308f, -0.749404f, -0.749492f, -0.749573f, -0.749647f, -0.749714f, -0.749774f, -0.749827f, -0.749873f, -0.749912f, -0.749944f, -0.749968f, -0.749986f, -0.749996f, -0.75f, -0.749996f, -0.749986f, -0.749968f, -0.749944f, -0.749912f, -0.749873f, -0.749827f, -0.749774f, -0.749714f, -0.749647f, -0.749573f, -0.749492f, -0.749404f, -0.749308f, -0.749206f, -0.749097f, -0.74898f, -0.748857f, -0.748726f, -0.748589f, -0.748444f, -0.748292f, -0.748134f, -0.747968f, -0.747795f, -0.747615f, -0.747428f, -0.747234f, -0.747034f, -0.746826f, -0.746611f, -0.746389f, -0.746159f, -0.745923f, -0.74568f, -0.74543f, -0.745173f, -0.744909f, -0.744638f, -0.74436f, -0.744074f, -0.743782f, -0.743483f, -0.743177f, -0.742864f, -0.742544f, -0.742217f, -0.741882f, -0.741541f, -0.741193f, -0.740838f, -0.740476f, -0.740107f, -0.739731f, -0.739348f, -0.738958f, -0.738561f, -0.738158f, -0.737747f, -0.737329f, -0.736904f, -0.736473f, -0.736034f, -0.735589f, -0.735137f, -0.734677f, -0.734211f, -0.733738f, -0.733258f, -0.732771f, -0.732277f, -0.731777f, -0.731269f, -0.730755f, -0.730233f, -0.729705f, -0.72917f, -0.728628f, -0.728079f, -0.727523f, -0.726961f, -0.726392f, -0.725815f, -0.725232f, -0.724643f, -0.724046f, -0.723442f, -0.722832f, -0.722215f, -0.721591f, -0.72096f, -0.720323f, -0.719679f, -0.719028f, -0.71837f, -0.717705f, -0.717034f, -0.716356f, -0.715671f, -0.71498f, -0.714281f, -0.713576f, -0.712865f, -0.712146f, -0.711421f, -0.710689f, -0.709951f, -0.709205f, -0.708454f, -0.707695f, -0.70693f, -0.706158f, -0.70538f, -0.704594f, -0.703803f, -0.703004f, -0.702199f, -0.701388f, -0.700569f, -0.699745f, -0.698913f, -0.698075f, -0.697231f, -0.69638f, -0.695522f, -0.694658f, -0.693787f, -0.69291f, -0.692026f, -0.691136f, -0.690239f, -0.689335f, -0.688426f, -0.687509f, -0.686587f, -0.685657f, -0.684722f, -0.68378f, -0.682831f, -0.681876f, -0.680915f, -0.679947f, -0.678973f, -0.677992f, -0.677005f, -0.676012f, -0.675012f, -0.674006f, -0.672993f, -0.671975f, -0.67095f, -0.669918f, -0.668881f, -0.667837f, -0.666786f, -0.66573f, -0.664667f, -0.663598f, -0.662523f, -0.661441f, -0.660353f, -0.659259f, -0.658159f, -0.657053f, -0.65594f, -0.654821f, -0.653696f, -0.652565f, -0.651428f, -0.650285f, -0.649135f, -0.64798f, -0.646818f, -0.64565f, -0.644476f, -0.643296f, -0.64211f, -0.640918f, -0.63972f, -0.638516f, -0.637306f, -0.63609f, -0.634868f, -0.63364f, -0.632406f, -0.631166f, -0.62992f, -0.628669f, -0.627411f, -0.626147f, -0.624878f, -0.623602f, -0.622321f, -0.621034f, -0.619741f, -0.618442f, -0.617137f, -0.615827f, -0.614511f, -0.613189f, -0.611861f, -0.610527f, -0.609188f, -0.607843f, -0.606492f, -0.605136f, -0.603773f, -0.602406f, -0.601032f, -0.599653f, -0.598268f, -0.596878f, -0.595482f, -0.59408f, -0.592673f, -0.59126f, -0.589841f, -0.588417f, -0.586988f, -0.585553f, -0.584112f, -0.582666f, -0.581215f, -0.579758f, -0.578295f, -0.576828f, -0.575354f, -0.573875f, -0.572391f, -0.570902f, -0.569407f, -0.567907f, -0.566401f, -0.56489f, -0.563374f, -0.561852f, -0.560325f, -0.558793f, -0.557256f, -0.555713f, -0.554165f, -0.552612f, -0.551054f, -0.549491f, -0.547922f, -0.546348f, -0.544769f, -0.543185f, -0.541596f, -0.540002f, -0.538403f, -0.536798f, -0.535189f, -0.533574f, -0.531955f, -0.53033f, -0.528701f, -0.527066f, -0.525427f, -0.523782f, -0.522133f, -0.520479f, -0.518819f, -0.517155f, -0.515487f, -0.513813f, -0.512134f, -0.510451f, -0.508763f, -0.50707f, -0.505372f, -0.503669f, -0.501962f, -0.50025f, -0.498533f, -0.496812f, -0.495086f, -0.493355f, -0.49162f, -0.48988f, -0.488135f, -0.486386f, -0.484632f, -0.482874f, -0.481111f, -0.479343f, -0.477571f, -0.475795f, -0.474014f, -0.472229f, -0.470439f, -0.468645f, -0.466846f, -0.465043f, -0.463235f, -0.461424f, -0.459608f, -0.457787f, -0.455962f, -0.454133f, -0.4523f, -0.450462f, -0.448621f, -0.446774f, -0.444924f, -0.44307f, -0.441211f, -0.439348f, -0.437481f, -0.43561f, -0.433735f, -0.431856f, -0.429973f, -0.428086f, -0.426194f, -0.424299f, -0.4224f, -0.420496f, -0.418589f, -0.416678f, -0.414763f, -0.412843f, -0.410921f, -0.408994f, -0.407063f, -0.405129f, -0.40319f, -0.401248f, -0.399302f, -0.397353f, -0.395399f, -0.393442f, -0.391481f, -0.389517f, -0.387549f, -0.385577f, -0.383602f, -0.381623f, -0.37964f, -0.377654f, -0.375664f, -0.373671f, -0.371674f, -0.369674f, -0.36767f, -0.365663f, -0.363652f, -0.361638f, -0.35962f, -0.357599f, -0.355575f, -0.353548f, -0.351517f, -0.349482f, -0.347445f, -0.345404f, -0.34336f, -0.341313f, -0.339262f, -0.337208f, -0.335152f, -0.333092f, -0.331028f, -0.328962f, -0.326893f, -0.32482f, -0.322745f, -0.320666f, -0.318585f, -0.3165f, -0.314413f, -0.312322f, -0.310229f, -0.308132f, -0.306033f, -0.303931f, -0.301826f, -0.299718f, -0.297607f, -0.295494f, -0.293378f, -0.291259f, -0.289137f, -0.287013f, -0.284885f, -0.282756f, -0.280623f, -0.278488f, -0.27635f, -0.27421f, -0.272067f, -0.269921f, -0.267773f, -0.265623f, -0.26347f, -0.261314f, -0.259156f, -0.256996f, -0.254833f, -0.252667f, -0.2505f, -0.24833f, -0.246157f, -0.243983f, -0.241806f, -0.239627f, -0.237445f, -0.235261f, -0.233075f, -0.230887f, -0.228697f, -0.226504f, -0.22431f, -0.222113f, -0.219914f, -0.217714f, -0.215511f, -0.213306f, -0.211099f, -0.20889f, -0.206679f, -0.204466f, -0.202251f, -0.200035f, -0.197816f, -0.195596f, -0.193373f, -0.191149f, -0.188923f, -0.186696f, -0.184466f, -0.182235f, -0.180002f, -0.177768f, -0.175531f, -0.173294f, -0.171054f, -0.168813f, -0.16657f, -0.164326f, -0.16208f, -0.159833f, -0.157584f, -0.155334f, -0.153082f, -0.150828f, -0.148574f, -0.146318f, -0.14406f, -0.141802f, -0.139541f, -0.13728f, -0.135017f, -0.132753f, -0.130488f, -0.128221f, -0.125954f, -0.123685f, -0.121415f, -0.119144f, -0.116871f, -0.114598f, -0.112323f, -0.110048f, -0.107771f, -0.105494f, -0.103215f, -0.100936f, -0.098655f, -0.096374f, -0.094091f, -0.091808f, -0.089524f, -0.087239f, -0.084953f, -0.082667f, -0.080379f, -0.078091f, -0.075802f, -0.073513f, -0.071223f, -0.068932f, -0.06664f, -0.064348f, -0.062055f, -0.059762f, -0.057468f, -0.055173f, -0.052878f, -0.050583f, -0.048287f, -0.045991f, -0.043694f, -0.041396f, -0.039099f, -0.036801f, -0.034502f, -0.032204f, -0.029905f, -0.027605f, -0.025306f, -0.023006f, -0.020706f, -0.018406f, -0.016106f, -0.013805f, -0.011504f, -0.009204f, -0.006903f, -0.004602f, -0.002301f,
34243434 }
34253435 };
3436+#endif
34263437
3438+#ifdef USE_SQUARE_TABLE
34273439 const float __leaf_table_squarewave[11][SQR_TABLE_SIZE] =
34283440 {
34293441
@@ -3472,7 +3484,12 @@ const float __leaf_table_squarewave[11][SQR_TABLE_SIZE] = · 42 unmodified lines
34723484 },
34733485
34743486 };
3487+#endif
3488+
3489+
34753490
3491+
3492+#if DECAY_TABLES_USED
34763493 const float __leaf_table_exp_decay[EXP_DECAY_TABLE_SIZE] = {
34773494 1.0f, 0.999969f, 0.999939f, 0.999908f, 0.999878f, 0.999847f, 0.999817f, 0.999786f, 0.999756f, 0.999725f, 0.999695f, 0.999664f, 0.999634f, 0.999603f, 0.999573f, 0.999542f, 0.999512f, 0.999481f, 0.999451f, 0.99942f,
34783495 0.99939f, 0.999359f, 0.999329f, 0.999298f, 0.999268f, 0.999237f, 0.999207f, 0.999176f, 0.999146f, 0.999115f, 0.999085f, 0.999054f, 0.999024f, 0.998993f, 0.998963f, 0.998932f, 0.998902f, 0.998871f, 0.998841f, 0.99881f,
@@ -10032,6 +10049,8 @@ const float __leaf_table_attack_decay_inc[ATTACK_DECAY_INC_TABLE_SIZE] = { · 6553 unmodified lines
1003210049 0.166758f, 0.166756f, 0.166753f, 0.166751f, 0.166748f, 0.166746f, 0.166743f, 0.16674f, 0.166738f, 0.166735f, 0.166733f, 0.16673f, 0.166728f, 0.166725f, 0.166723f, 0.16672f, 0.166718f, 0.166715f, 0.166712f, 0.16671f,
1003310050 0.166707f, 0.166705f, 0.166702f, 0.1667f, 0.166697f, 0.166695f, 0.166692f, 0.16669f, 0.166687f, 0.166684f, 0.166682f, 0.166679f, 0.166677f, 0.166674f, 0.166672f, 0.166669f,
1003410051 };
10052+#endif
10053+
1003510054
1003610055 const float __leaf_table_filtertan[FILTERTAN_TABLE_SIZE] = {
1003710056 0.001349f, 0.001351f, 0.001354f, 0.001356f, 0.001358f, 0.00136f, 0.001362f, 0.001365f, 0.001367f, 0.001369f, 0.001371f, 0.001373f, 0.001376f, 0.001378f, 0.00138f, 0.001382f, 0.001384f, 0.001387f, 0.001389f, 0.001391f,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t