Vital
Loading...
Searching...
No Matches
delay_module.h
Go to the documentation of this file.
1#pragma once
2
3#include "synth_constants.h"
4#include "synth_module.h"
5
6#include "delay.h"
7
8namespace vital {
9
16 class DelayModule : public SynthModule {
17 public:
19 static constexpr mono_float kMaxDelayTime = 4.0f;
20
26 DelayModule(const Output* beats_per_second);
27
31 virtual ~DelayModule();
32
36 virtual void init() override;
37
41 virtual void hardReset() override { delay_->hardReset(); }
42
50 virtual void enable(bool enable) override {
52 process(1);
53 if (!enable)
55 }
56
62 virtual void setSampleRate(int sample_rate) override;
63
69 virtual void setOversampleAmount(int oversample) override;
70
80 virtual void processWithInput(const poly_float* audio_in, int num_samples) override;
81
87 virtual Processor* clone() const override { return new DelayModule(*this); }
88
89 protected:
92
93 JUCE_LEAK_DETECTOR(DelayModule)
94 };
95} // namespace vital
A flexible delay line effect processor that can operate in various styles and apply filtering.
Definition delay.h:47
void hardReset() override
Hard-resets the delay line and internal filters.
Definition delay.cpp:43
A stereo delay effect module providing adjustable delay times, feedback, filtering,...
Definition delay_module.h:16
virtual void setSampleRate(int sample_rate) override
Sets the sample rate for the delay. This ensures that time-based parameters remain accurate.
Definition delay_module.cpp:51
DelayModule(const Output *beats_per_second)
Constructs the DelayModule, linking it to a beats-per-second output for tempo synchronization.
Definition delay_module.cpp:8
virtual void processWithInput(const poly_float *audio_in, int num_samples) override
Processes audio input through the delay effect.
Definition delay_module.cpp:68
const Output * beats_per_second_
An output providing tempo information for syncing delay times.
Definition delay_module.h:90
static constexpr mono_float kMaxDelayTime
The maximum delay time in seconds.
Definition delay_module.h:19
StereoDelay * delay_
The underlying StereoDelay processor implementing the delay effect.
Definition delay_module.h:91
virtual Processor * clone() const override
Clones the DelayModule, creating a new instance with identical parameters.
Definition delay_module.h:87
virtual void enable(bool enable) override
Enables or disables the DelayModule.
Definition delay_module.h:50
virtual ~DelayModule()
Destroys the DelayModule and releases associated resources.
Definition delay_module.cpp:15
virtual void hardReset() override
Performs a hard reset on the delay, clearing any buffered samples and returning to initial state.
Definition delay_module.h:41
virtual void init() override
Initializes the DelayModule, creating and linking parameters and setting up the StereoDelay processor...
Definition delay_module.cpp:17
virtual void setOversampleAmount(int oversample) override
Sets the oversample amount and updates internal delay buffer sizes accordingly.
Definition delay_module.cpp:60
Base class for all signal-processing units in Vital.
Definition processor.h:212
virtual void process(int num_samples) override
Processes audio through all Processors managed by this router.
Definition processor_router.cpp:57
A ProcessorRouter that encapsulates a cohesive unit of functionality in the synthesizer.
Definition synth_module.h:129
virtual void enable(bool enable) override
Enables or disables this SynthModule and its owned processors.
Definition synth_module.cpp:516
Contains classes and functions used within the Vital synthesizer framework.
float mono_float
Definition common.h:33
Holds and manages a buffer of samples (poly_float) for a Processor's output.
Definition processor.h:35
Represents a vector of floating-point values using SIMD instructions.
Definition poly_values.h:600
Defines the SynthModule class which extends ProcessorRouter to form a building block of the Vital syn...