19 logMsg(
"FrequencyAmount::add null inputs");
30 logMsg(
"FrequencyAmount::set scale input UG");
37 logMsg(
"FrequencyAmount::set scale input value");
48 logMsg(
"FrequencyAmount::set offset input UG");
55 logMsg(
"FrequencyAmount::set offset input value");
107 logMsg(
"Filter nextBuffer");
110 unsigned numFrames = outputBuffer.mNumFrames;
120 bool isDynamic =
false;
121 if ((freqPort && ( ! freqPort->isFixed())) || (bwPort && ( ! bwPort->isFixed())))
126 inputPtr = mInputPtr;
133 for (
unsigned i = 0; i < numFrames; i++) {
137 *prevIPtr = scaleValue * *inputPtr++ + offsetValue;
138 for (
unsigned j = mBNum - 1; j > 0; j--) {
139 *prevOPtr += mBCoeff[j] * prevIns[j];
140 prevIns[j] = prevIns[j-1];
142 *prevOPtr += mBCoeff[0] * prevIns[0];
143 for (
unsigned j = mANum - 1; j > 0; j--) {
144 *prevOPtr += -mACoeff[j] * prevOuts[j];
145 prevOuts[j] = prevOuts[j-1];
148 *out++ = (*prevOPtr * scaleValue) + offsetValue;
157 for (
unsigned i = 0; i < num_b; i++)
159 for (
unsigned i = 0; i < num_a; i++)
174 fprintf(stderr,
"A coefficients ");
175 for (
unsigned i=0;i<
mANum;i++) {
176 fprintf(stderr,
"%.2f, ",
mACoeff[i]);
178 fprintf(stderr,
"\n");
179 fprintf(stderr,
"B coefficients ");
180 for (
unsigned i=0;i<
mBNum;i++) {
181 fprintf(stderr,
"%.2f, ",
mBCoeff[i]);
183 fprintf(stderr,
"\n");
416 logMsg(
"Moog Filter nextBuffer");
418 sample* out = outputBuffer.monoBuffer(outBufNum);
419 unsigned numFrames = outputBuffer.mNumFrames;
427 for (
unsigned i = 0; i < numFrames; i++) {
430 x = *inputPtr++ - r * y4;
432 y1 = x * p + oldx * p - k * y1;
433 y2 = y1 * p + oldy1 * p - k * y2;
434 y3 = y2 * p + oldy2 * p - k * y3;
435 y4 = y3 * p + oldy3 * p - k * y4;
437 y4 = y4 - (y4*y4*y4) / 6;
455 k = 3.6 * f - 1.6 * f * f - 1;
457 scale = exp((1 -
p ) * 1.386249 );
458 r = resonance * scale;