Loading...
Searching...
No Matches
dsp::Oscillator< SampleType > Class Template Reference

Generates a signal based on a user-supplied function. More...

Public Types

using NumericType = typename SampleTypeHelpers::ElementType<SampleType>::Type
 The NumericType is the underlying primitive type used by the SampleType (which could be either a primitive or vector)
 

Public Member Functions

 Oscillator ()=default
 Creates an uninitialised oscillator.
 
 Oscillator (const std::function< NumericType(NumericType)> &function, size_t lookupTableNumPoints=0)
 Creates an oscillator with a periodic input function (-pi..pi).
 
bool isInitialised () const noexcept
 Returns true if the Oscillator has been initialised.
 
void initialise (const std::function< NumericType(NumericType)> &function, size_t lookupTableNumPoints=0)
 Initialises the oscillator with a waveform.
 
void setFrequency (NumericType newFrequency, bool force=false) noexcept
 Sets the frequency of the oscillator.
 
NumericType getFrequency () const noexcept
 Returns the current frequency of the oscillator.
 
void prepare (const ProcessSpec &spec) noexcept
 Called before processing starts.
 
void reset () noexcept
 Resets the internal state of the oscillator.
 
SampleType JUCE_VECTOR_CALLTYPE processSample (SampleType input) noexcept
 Returns the result of processing a single sample.
 
template<typename ProcessContext>
void process (const ProcessContext &context) noexcept
 Processes the input and output buffers supplied in the processing context.
 

Detailed Description

template<typename SampleType>
class dsp::Oscillator< SampleType >

Generates a signal based on a user-supplied function.

Member Typedef Documentation

◆ NumericType

template<typename SampleType>
using dsp::Oscillator< SampleType >::NumericType = typename SampleTypeHelpers::ElementType<SampleType>::Type

The NumericType is the underlying primitive type used by the SampleType (which could be either a primitive or vector)

Constructor & Destructor Documentation

◆ Oscillator() [1/2]

template<typename SampleType>
dsp::Oscillator< SampleType >::Oscillator ( )
default

Creates an uninitialised oscillator.

Call initialise before first use.

◆ Oscillator() [2/2]

template<typename SampleType>
dsp::Oscillator< SampleType >::Oscillator ( const std::function< NumericType(NumericType)> & function,
size_t lookupTableNumPoints = 0 )

Creates an oscillator with a periodic input function (-pi..pi).

If lookup table is not zero, then the function will be approximated with a lookup table.

References initialise().

Member Function Documentation

◆ isInitialised()

template<typename SampleType>
bool dsp::Oscillator< SampleType >::isInitialised ( ) const
noexcept

Returns true if the Oscillator has been initialised.

Referenced by process(), and processSample().

◆ initialise()

template<typename SampleType>
void dsp::Oscillator< SampleType >::initialise ( const std::function< NumericType(NumericType)> & function,
size_t lookupTableNumPoints = 0 )

Initialises the oscillator with a waveform.

References MathConstants< FloatType >::pi, table, and x.

Referenced by Oscillator().

◆ setFrequency()

template<typename SampleType>
void dsp::Oscillator< SampleType >::setFrequency ( NumericType newFrequency,
bool force = false )
noexcept

Sets the frequency of the oscillator.

◆ getFrequency()

template<typename SampleType>
NumericType dsp::Oscillator< SampleType >::getFrequency ( ) const
noexcept

Returns the current frequency of the oscillator.

◆ prepare()

template<typename SampleType>
void dsp::Oscillator< SampleType >::prepare ( const ProcessSpec & spec)
noexcept

Called before processing starts.

References reset().

◆ reset()

template<typename SampleType>
void dsp::Oscillator< SampleType >::reset ( )
noexcept

Resets the internal state of the oscillator.

Referenced by prepare().

◆ processSample()

template<typename SampleType>
SampleType JUCE_VECTOR_CALLTYPE dsp::Oscillator< SampleType >::processSample ( SampleType input)
noexcept

Returns the result of processing a single sample.

References isInitialised(), jassert, MathConstants< FloatType >::pi, and MathConstants< FloatType >::twoPi.

◆ process()

template<typename SampleType>
template<typename ProcessContext>
void dsp::Oscillator< SampleType >::process ( const ProcessContext & context)
noexcept

Processes the input and output buffers supplied in the processing context.

References isInitialised(), jassert, jmin(), MathConstants< FloatType >::pi, and MathConstants< FloatType >::twoPi.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram