dsp::Oscillator< SampleType > Class Template Reference
juce_dsp » processors

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) More...

## Public Member Functions

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

## 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.

## Member Function Documentation

## isInitialised()

template<typename SampleType >

bool dsp::Oscillator< SampleType >::isInitialised | ( |  | ) | const

noexcept

Returns true if the Oscillator has been initialised.

Referenced by dsp::Oscillator< SampleType >::process(), and dsp::Oscillator< SampleType >::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.

## setFrequency()

template<typename SampleType >

void dsp::Oscillator< SampleType >::setFrequency | ( | NumericType | newFrequency,
|  | bool | force = `false`
| ) |  |

noexcept

Sets the frequency of the oscillator.

References SmoothedValueBase< SmoothedValueType >::setCurrentAndTargetValue(), and SmoothedValue< FloatType, SmoothingType >::setTargetValue().

## getFrequency()

template<typename SampleType >

NumericType dsp::Oscillator< SampleType >::getFrequency | ( |  | ) | const

noexcept

Returns the current frequency of the oscillator.

References SmoothedValueBase< SmoothedValueType >::getTargetValue().

## prepare()

template<typename SampleType >

void dsp::Oscillator< SampleType >::prepare | ( | const ProcessSpec & | spec | ) |

noexcept

Called before processing starts.

References dsp::Oscillator< SampleType >::reset(), and Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::resize().

## reset()

template<typename SampleType >

void dsp::Oscillator< SampleType >::reset | ( |  | ) |

noexcept

Resets the internal state of the oscillator.

References dsp::Phase< Type >::reset(), and SmoothedValue< FloatType, SmoothingType >::reset().

Referenced by dsp::Oscillator< SampleType >::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 dsp::Phase< Type >::advance(), SmoothedValue< FloatType, SmoothingType >::getNextValue(), dsp::Oscillator< SampleType >::isInitialised(), and jassert.

## 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 dsp::Phase< Type >::advance(), SmoothedValue< FloatType, SmoothingType >::getNextValue(), Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::getRawDataPointer(), dsp::Oscillator< SampleType >::isInitialised(), SmoothedValueBase< SmoothedValueType >::isSmoothing(), jassert, jmin(), Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::size(), and SmoothedValue< FloatType, SmoothingType >::skip().

The documentation for this class was generated from the following file:

- juce_Oscillator.h