A WaveSource that constructs a special looped waveform reminiscent of a Shepard tone.
Definition shepard_tone_source.h:18
virtual WavetableComponentFactory::ComponentType getType() override
Returns the component type associated with this source.
Definition shepard_tone_source.cpp:41
ShepardToneSource()
Constructs a ShepardToneSource with a loop frame for seamless frequency content.
Definition shepard_tone_source.cpp:9
virtual ~ShepardToneSource()
Definition shepard_tone_source.cpp:14
virtual bool hasKeyframes() override
Indicates whether this component has keyframes.
Definition shepard_tone_source.h:51
std::unique_ptr< WaveSourceKeyframe > loop_frame_
A loop frame used to create the repetitive Shepard effect.
Definition shepard_tone_source.h:54
virtual void render(vital::WaveFrame *wave_frame, float position) override
Renders a frame of the Shepard tone wavetable at a given position.
Definition shepard_tone_source.cpp:16
A WavetableComponent that acts as a direct source of waveforms.
Definition wave_source.h:25
ComponentType
Enumerates all known WavetableComponents, including sources and modifiers.
Definition wavetable_component_factory.h:28
Represents a single frame of a wavetable, containing both time-domain and frequency-domain data.
Definition wave_frame.h:16