A white noise oscillator. More...
#include <marvin_Oscillator.h>
Public Member Functions | |
NoiseOscillator (std::random_device &rd) | |
~NoiseOscillator () noexcept override=default | |
SampleType | operator() () noexcept override |
SampleType | operator() (SampleType phase) noexcept override |
![]() | |
virtual | ~OscillatorBase () noexcept=default |
virtual void | initialise (double sampleRate) |
virtual void | reset () noexcept |
void | setFrequency (SampleType newFrequency) noexcept |
void | setPhaseOffset (SampleType newPhaseOffset) noexcept |
Additional Inherited Members | |
![]() | |
void | incrementPhase () noexcept |
![]() | |
double | m_sampleRate {} |
SampleType | m_phaseIncrement { static_cast<SampleType>(0.0) } |
SampleType | m_phase { static_cast<SampleType>(0.0) } |
SampleType | m_phaseOffset { static_cast<SampleType>(0.0) } |
A white noise oscillator.
|
explicit |
As it's not recommended to keep multiple instances of std::random_device
around, it's necessary to pass one in by reference to the constructor, as a seed for the internal rng.
rd | The seed generator to use. |
|
overridedefaultnoexcept |
|
nodiscardoverridevirtualnoexcept |
Processes the next sample of the wave, handling phase increments internally. Make sure to call prepareToPlay and setFrequency before calling this function!
Implements marvin::dsp::oscillators::OscillatorBase< SampleType >.
|
nodiscardoverridevirtualnoexcept |
As NoiseOscillator has no concept of phase, this overload is exactly identical to the internal phase overload.
phase | Unused in this case. |
Implements marvin::dsp::oscillators::OscillatorBase< SampleType >.