27# define PI 3.141592653589793f
86 srand(
static_cast<unsigned>(time(0)));
112 for (
int j = 0; j < 35; j += 1)
125 for (
int j = 0; j < 35; j += 1)
126 waveTable[i] += (sin((2 * j + 1) * i * radPerSec)) / (2 * j + 1);
136 for (
int j = 1; j < 11; j += 1)
154 waveTable[i] = (sin(i * radPerSec) + 1) * .5f;
222 for (
int j = 0; j <
res; j++) {
223 for (
int i = 0; i <
order; i++) {
235 if (!polynomial_normaliser) {
238 std::fill(polynomial_normaliser, polynomial_normaliser +
order, 1);
244 for (
int i = 0; i <
res; i++) {
245 alphas[i] = (i / float(
res)) - 0.5;
250 if ((
order % 2) == 0) {
251 for (
int i = 0; i <
order; i++) {
256 for (
int i = 0; i <
order; i++) {
262 for (
int q = 0; q <
res; q++) {
264 for (
int j = 0; j <
order; j++) {
266 for (
int m = 0; m <
order; m++) {
269 polynomial_normaliser[j] =
270 polynomial_normaliser[j] * (anchors[j] - anchors[m]);
279 delete[] polynomial_normaliser;
307 const int orderHalf =
order * .5;
310 int intBufferIndex = floor(bufferIndex);
311 int alphaIndex = int(floor((bufferIndex - intBufferIndex) *
res));
313 for (
int i = 0; i <
order; i++) {
336 const int n0 = floor(bufferIndex);
338 const int n2 = (n0 + (2 * freq)) %
sampleRate;
346 return a + (b * alpha) + (c * alpha * alpha) + (d * alpha * alpha * alpha);
361 static const int res = 100;
449 for (
int i = 0; i < order; i++) {
451 if (!interpTable[i]) {
454 std::fill(interpTable[i], interpTable[i] + res, 1);
458 if (!polynomial_normaliser) {
461 std::fill(polynomial_normaliser, polynomial_normaliser + order, 1);
467 for (
int i = 0; i < res; i++) {
468 alphas[i] = (i / float(res)) - 0.5;
473 if ((order % 2) == 0) {
474 for (
int i = 0; i < order; i++) {
478 for (
int i = 0; i < order; i++) {
484 for (
int q = 0; q < res; q++) {
486 for (
int j = 0; j < order; j++) {
488 for (
int m = 0; m < order; m++) {
491 polynomial_normaliser[j] =
492 polynomial_normaliser[j] * (anchors[j] - anchors[m]);
494 interpTable[j][q] *= (alphas[q] - anchors[m]);
497 interpTable[j][q] /= polynomial_normaliser[j];
500 delete[] polynomial_normaliser;
592 const int orderHalf = order * .5;
595 int intBufferIndex = floor(bufferIndex);
596 int alphaIndex = int(floor((bufferIndex - intBufferIndex) * res));
598 for (
int i = 0; i < order; i++) {
599 int interpIndex = (i + 1 - orderHalf) + intBufferIndex;
601 if (interpIndex < 0) {
720 int order = (int)poles;
727 Es = sqrt(pow(1 / (1 - ripple), 2) - 1);
728 Vx = (1 / poles) * log(1 / Es + sqrt(1 / (pow(Es, 2)) + 1));
729 Kx = (1 / poles) * log(1 / Es + sqrt(1 / (pow(Es, 2)) - 1));
743 K = sin(.5 - W / 2) / sin(.5 + W / 2);
747 K = -cos(.5 + W / 2) / cos(W / 2 - .5);
751 for (
int i = 0; i < (order / 2); i++) {
757 Rp = -cos(alpha) * sinh(Vx) / Kx;
758 Ip = sin(alpha) * cosh(Vx) / Kx;
777 const effectsuite_t _A0 = (X0 - X1 * K + X2 * pow(K, 2)) * _D1;
778 effectsuite_t _A1 = (-2 * X0 * K + X1 + X1 * pow(K, 2) - 2 * X2 * K) * _D1;
779 const effectsuite_t _A2 = (X0 * pow(K, 2) - X1 * K + X2) * _D1;
781 effectsuite_t _B1 = (2 * K + Y1 + Y1 * pow(K, 2) - 2 * Y2 * K) * _D1;
784 if (shelfType == 1) {
789 for (
int j = 0; j < 22; j++) {
793 for (
int j = 2; j < 22; j++) {
809 if (shelfType == 0) {
815 for (
int j = 0; j < order; j++) {
956 rmsValue = sqrt(rmsValue);
1232 }
else if (gain < -1.) {
1370 }
else if (gain < -1.) {
1384 const int n0 = floor(bufferIndex);
1395 return a + (b * alpha) + (c * alpha * alpha) + (d * alpha * alpha * alpha);
1510 }
else if (gain < -1.) {
#define PI
Definition AudioEffectsSuite.h:27
#define assert(T)
Definition avr.h:10