Vital
Loading...
Searching...
No Matches
oscillator_module.h
Go to the documentation of this file.
1#pragma once
2
3#include "synth_module.h"
4#include "synth_oscillator.h"
5
6namespace vital {
7 class Wavetable;
8
17 public:
22 enum {
28 };
29
34 enum {
38 };
39
45 OscillatorModule(std::string prefix = "");
46
50 virtual ~OscillatorModule() { }
51
59 void process(int num_samples) override;
60
66 void init() override;
67
73 virtual Processor* clone() const override { return new OscillatorModule(*this); }
74
80 Wavetable* getWavetable() { return wavetable_.get(); }
81
88
98
99 protected:
100 std::string prefix_;
101 std::shared_ptr<Wavetable> wavetable_;
102 std::shared_ptr<bool> was_on_;
108 JUCE_LEAK_DETECTOR(OscillatorModule)
109 };
110} // namespace vital
A synthesis module that represents an oscillator within the Vital synthesizer.
Definition oscillator_module.h:16
SynthOscillator * oscillator_
Definition oscillator_module.h:105
OscillatorModule(std::string prefix="")
Constructs an OscillatorModule with an optional prefix for parameter naming.
Definition oscillator_module.cpp:13
std::shared_ptr< Wavetable > wavetable_
Definition oscillator_module.h:101
Wavetable * getWavetable()
Returns the associated Wavetable object.
Definition oscillator_module.h:80
SynthOscillator::DistortionType getDistortionType()
Gets the currently set distortion type.
Definition oscillator_module.h:94
virtual Processor * clone() const override
Creates a clone of this oscillator module.
Definition oscillator_module.h:73
std::shared_ptr< bool > was_on_
Definition oscillator_module.h:102
virtual ~OscillatorModule()
Destructor.
Definition oscillator_module.h:50
Value * distortion_type_
Definition oscillator_module.h:106
@ kLevelled
Definition oscillator_module.h:36
@ kRaw
Definition oscillator_module.h:35
@ kNumOutputs
Definition oscillator_module.h:37
void process(int num_samples) override
Processes the oscillator for a given number of samples.
Definition oscillator_module.cpp:116
std::string prefix_
Definition oscillator_module.h:100
force_inline SynthOscillator * oscillator()
Returns a pointer to the internal SynthOscillator.
Definition oscillator_module.h:87
void init() override
Initializes the module and sets up the internal SynthOscillator with appropriate parameters.
Definition oscillator_module.cpp:26
Value * on_
Definition oscillator_module.h:104
@ kMidi
Definition oscillator_module.h:25
@ kNumInputs
Definition oscillator_module.h:27
@ kActiveVoices
Definition oscillator_module.h:26
@ kReset
Definition oscillator_module.h:23
@ kRetrigger
Definition oscillator_module.h:24
Base class for all signal-processing units in Vital.
Definition processor.h:212
A ProcessorRouter that encapsulates a cohesive unit of functionality in the synthesizer.
Definition synth_module.h:129
A core oscillator processor that generates audio by reading wavetable data with various effects.
Definition synth_oscillator.h:74
DistortionType
Types of distortion/waveshaping used by the oscillator.
Definition synth_oscillator.h:145
A Processor that maintains and outputs a constant poly_float value.
Definition value.h:24
force_inline mono_float value() const
Returns the current mono_float value of the first lane.
Definition value.h:60
A class representing a wavetable, holding multiple frames of waveforms and their frequency-domain rep...
Definition wavetable.h:20
#define force_inline
Definition common.h:23
Contains classes and functions used within the Vital synthesizer framework.
Defines the SynthModule class which extends ProcessorRouter to form a building block of the Vital syn...