Vital
Loading...
Searching...
No Matches
formant_manager.h
Go to the documentation of this file.
1#pragma once
2
3#include "processor_router.h"
4#include "synth_constants.h"
5
6namespace vital {
7
8 class DigitalSvf;
9
19 public:
23 static constexpr mono_float kMinResonance = 4.0f;
24
28 static constexpr mono_float kMaxResonance = 30.0f;
29
34 FormantManager(int num_formants = 4);
35
39 virtual ~FormantManager() { }
40
47 virtual void init() override;
48
53 void reset(poly_mask reset_mask) override;
54
60 void hardReset() override;
61
66 virtual Processor* clone() const override {
67 return new FormantManager(*this);
68 }
69
75 DigitalSvf* getFormant(int index = 0) { return formants_[index]; }
76
81 int numFormants() { return static_cast<int>(formants_.size()); }
82
83 protected:
87 std::vector<DigitalSvf*> formants_;
88
89 JUCE_LEAK_DETECTOR(FormantManager)
90 };
91} // namespace vital
A state-variable filter (SVF) implementation, supporting multiple filter types (12/24 dB,...
Definition digital_svf.h:17
Manages a collection of DigitalSvf instances for formant filtering.
Definition formant_manager.h:18
virtual Processor * clone() const override
Clones (deep copies) this FormantManager.
Definition formant_manager.h:66
static constexpr mono_float kMinResonance
Minimum allowed resonance for each DigitalSvf in this manager.
Definition formant_manager.h:23
int numFormants()
Gets the total number of formants managed by this object.
Definition formant_manager.h:81
void reset(poly_mask reset_mask) override
Resets stateful data (e.g., filter history) in each DigitalSvf for voices indicated by the reset_mask...
Definition formant_manager.cpp:29
virtual ~FormantManager()
Virtual destructor.
Definition formant_manager.h:39
static constexpr mono_float kMaxResonance
Maximum allowed resonance for each DigitalSvf in this manager.
Definition formant_manager.h:28
void hardReset() override
Fully resets all formants (for all voices).
Definition formant_manager.cpp:34
virtual void init() override
Initializes the internal routing of formant filters, creating the summing processor.
Definition formant_manager.cpp:17
FormantManager(int num_formants=4)
Constructs a FormantManager to hold a given number of DigitalSvf formants.
Definition formant_manager.cpp:8
std::vector< DigitalSvf * > formants_
A list of DigitalSvf pointers, each representing a vowel formant or similar resonant filter.
Definition formant_manager.h:87
DigitalSvf * getFormant(int index=0)
Returns a pointer to the requested formant filter (DigitalSvf).
Definition formant_manager.h:75
Base class for all signal-processing units in Vital.
Definition processor.h:212
A specialized Processor that manages a directed graph of Processors and ensures correct processing or...
Definition processor_router.h:34
Contains classes and functions used within the Vital synthesizer framework.
float mono_float
Definition common.h:33
Declares the ProcessorRouter class, which manages a graph of Processors and their dependencies.
Represents a vector of integer values using SIMD instructions.
Definition poly_values.h:56