SynthLab SDK
vafiltercore.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "synthbase.h"
4 #include "synthfunctions.h"
5 #include "limiter.h"
6 #include "vafilters.h"
7 
8 // -----------------------------
9 // --- SynthLab SDK File --- //
10 // ----------------------------
18 // -----------------------------------------------------------------------------
19 namespace SynthLab
20 {
93  class VAFilterCore : public ModuleCore
94  {
95  public:
97  VAFilterCore(); /* C-TOR */
98 
100  virtual ~VAFilterCore() {} /* D-TOR */
101 
103  virtual bool reset(CoreProcData& processInfo) override;
104  virtual bool update(CoreProcData& processInfo) override;
105  virtual bool render(CoreProcData& processInfo) override;
106  virtual bool doNoteOn(CoreProcData& processInfo) override;
107  virtual bool doNoteOff(CoreProcData& processInfo) override;
108 
109  protected:
110  // --- our member filters
111  VA1Filter va1[STEREO];
112  VASVFilter svf[STEREO];
114  VAMoogFilter moog[STEREO];
116 
117  // --- global filter type
118  FilterModel selectedModel = FilterModel::kFirstOrder;
119  uint32_t outputIndex = 0;
120  double outputAmp = 1.0;
121  bool forceDualMonoFilters = false;
122 
123  // --- output limiter
124  Limiter limiter[STEREO];
125 
126  // --- for key track
127  double midiPitch = 440.0;
128  };
129 
130 
131 
132 } // namespace
133 
double midiPitch
key tracking
Definition: vafiltercore.h:127
virtual bool render(CoreProcData &processInfo) override
Renders the output of the module.
Definition: vafiltercore.cpp:297
Definition: vafilters.h:295
VA1Filter va1[STEREO]
1st order VA
Definition: vafiltercore.h:111
double outputAmp
filter output amplitude, tweked from GUI in dB
Definition: vafiltercore.h:120
Definition: vafilters.h:191
Definition: vafilters.h:25
VASVFilter svf[STEREO]
SVF.
Definition: vafiltercore.h:112
virtual bool reset(CoreProcData &processInfo) override
Resets object to initialized state.
Definition: vafiltercore.cpp:71
Limiter limiter[STEREO]
limiters to squelch oscillations
Definition: vafiltercore.h:124
virtual bool update(CoreProcData &processInfo) override
Updates the object for the next block of audio processing.
Definition: vafiltercore.cpp:108
Definition: addosccore.cpp:4
See also Designing Software Synthesizers in C++ 2nd Ed. by Will Pirkle.
Definition: vafilters.h:121
virtual bool doNoteOn(CoreProcData &processInfo) override
Note-on handler for the ModuleCore.
Definition: vafiltercore.cpp:376
VAFilterCore()
Constructs Construction: Cores follow the same construction pattern.
Definition: vafiltercore.cpp:31
VAMoogFilter moog[STEREO]
moog
Definition: vafiltercore.h:114
virtual bool doNoteOff(CoreProcData &processInfo) override
Note-off handler for the ModuleCore.
Definition: vafiltercore.cpp:396
VADiodeFilter diode[STEREO]
diode
Definition: vafiltercore.h:115
Implements a custom peak limiter designed especially for self oscillating filters whose outputs are >...
Definition: limiter.h:373
Definition: vafilters.h:75
uint32_t outputIndex
selected output
Definition: vafiltercore.h:119
virtual ~VAFilterCore()
Definition: vafiltercore.h:100
See also Designing Software Synthesizers in C++ 2nd Ed. by Will Pirkle.
bool forceDualMonoFilters
DM option for slow machines.
Definition: vafiltercore.h:121
Implements all of the virtual analog (VA) filters in the Synth Book using sub-filtering objects...
Definition: vafiltercore.h:93
hard-coded arrays of FIR filter coefficients for the sample rate conversion objects (Interpolator and...
This structure holds all of the information needed to call functions on a ModuleCore object...
Definition: synthbase.h:1071
Abstract base class that encapsulates functionality of a module core; used with the Module-Core parad...
Definition: synthbase.h:1516
See also Designing Software Synthesizers in C++ 2nd Ed. by Will Pirkle.
VAKorg35Filter korg35[STEREO]
Korg35.
Definition: vafiltercore.h:113