svf scaledResonance
parent
b8f9664f7c
commit
e5c664a5ad
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstring>
|
||||
#include <cmath>
|
||||
|
||||
#include "data/audioframe.h"
|
||||
|
||||
|
@ -24,5 +25,7 @@ namespace Xybrid::NodeLib {
|
|||
|
||||
void process(Data::AudioFrame in, double freq, double res, int oversamp = DEFAULT_OVERSAMP);
|
||||
inline void reset() { low = 0.0; high = 0.0; band = 0.0; notch = 0.0; }
|
||||
|
||||
static inline double scaledResonance(double r) { return std::pow(10, r*5); }
|
||||
};
|
||||
}
|
||||
|
|
|
@ -74,11 +74,13 @@ void SVF::process() {
|
|||
in->pull();
|
||||
out->pull();
|
||||
|
||||
auto r = filter.scaledResonance(resonance);
|
||||
|
||||
size_t ts = audioEngine->curTickSize();
|
||||
for (size_t f = 0; f < ts; f++) {
|
||||
AudioFrame inp = (*in)[f];
|
||||
|
||||
filter.process(inp, frequency, resonance);
|
||||
filter.process(inp, frequency, r);
|
||||
|
||||
switch (mode) {
|
||||
case Low:
|
||||
|
@ -132,7 +134,7 @@ void SVF::onGadgetCreated() {
|
|||
return qs("?");
|
||||
};
|
||||
|
||||
(new KnobGadget(l))->bind(frequency)->setLabel(qs("Freq"))->setRange(0.0, 16000.0, 50.0, KnobGadget::NoStep)->setDefault(6400.0);
|
||||
(new KnobGadget(l))->bind(resonance)->setLabel(qs("Res"))->setRange(0.0, 100.0, 1.0)->setDefault(0.0);
|
||||
(new KnobGadget(l))->bind(frequency)->setLabel(qs("Freq"))->setRange(0.0, 16000.0, 25.0, KnobGadget::NoStep)->setDefault(6400.0);
|
||||
(new KnobGadget(l))->bind(resonance)->setLabel(qs("Res"))->setRange(0.0, 1.0, 0.01)->setDefault(0.0);
|
||||
(new KnobGadget(l))->bind(mode)->setLabel(qs("Mode"))->setTextFunc(modetxt)->setRange(0, Notch, 1, KnobGadget::BigStep)->setDefault(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue