JUCE
Namespaces | Macros | Typedefs | Functions
juce_dsp.h File Reference

Namespaces

 juce
 Classes for IIR filter processing.
 
 juce::dsp
 
 juce::dsp::util
 

Macros

#define JUCE_DSP_H_INCLUDED
 
#define JUCE_USE_SIMD   0
 
#define JUCE_VECTOR_CALLTYPE
 
#define JUCE_ASSERTION_FIRFILTER   1
 Config: JUCE_ASSERTION_FIRFILTER. More...
 
#define JUCE_DSP_USE_INTEL_MKL   0
 Config: JUCE_DSP_USE_INTEL_MKL. More...
 
#define JUCE_DSP_USE_SHARED_FFTW   0
 Config: JUCE_DSP_USE_SHARED_FFTW. More...
 
#define JUCE_DSP_USE_STATIC_FFTW   0
 Config: JUCE_DSP_USE_STATIC_FFTW. More...
 
#define JUCE_DSP_ENABLE_SNAP_TO_ZERO   1
 Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO. More...
 

Typedefs

template<typename Type >
using juce::dsp::Complex = ::std::complex< Type >
 

Functions

void juce::dsp::util::snapToZero (float &x) noexcept
 Use this function to prevent denormals on intel CPUs. More...
 

Macro Definition Documentation

◆ JUCE_DSP_H_INCLUDED

#define JUCE_DSP_H_INCLUDED

◆ JUCE_USE_SIMD

#define JUCE_USE_SIMD   0

◆ JUCE_VECTOR_CALLTYPE

#define JUCE_VECTOR_CALLTYPE

◆ JUCE_ASSERTION_FIRFILTER

#define JUCE_ASSERTION_FIRFILTER   1

Config: JUCE_ASSERTION_FIRFILTER.

When this flag is enabled, an assertion will be generated during the execution of DEBUG configurations if you use a FIRFilter class to process FIRCoefficients with a size higher than 128, to tell you that's it would be more efficient to use the Convolution class instead. It is enabled by default, but you may want to disable it if you really want to process such a filter in the time domain.

◆ JUCE_DSP_USE_INTEL_MKL

#define JUCE_DSP_USE_INTEL_MKL   0

Config: JUCE_DSP_USE_INTEL_MKL.

If this flag is set, then JUCE will use Intel's MKL for JUCE's FFT and convolution classes.

The folder containing the mkl_dfti.h header must be in your header search paths when using this flag. You also need to add all the necessary intel mkl libraries to the "External Libraries to Link" field in the Projucer.

◆ JUCE_DSP_USE_SHARED_FFTW

#define JUCE_DSP_USE_SHARED_FFTW   0

Config: JUCE_DSP_USE_SHARED_FFTW.

If this flag is set, then JUCE will search for the fftw shared libraries at runtime and use the library for JUCE's FFT and convolution classes.

If the library is not found, then JUCE's fallback FFT routines will be used.

This is especially useful on linux as fftw often comes pre-installed on popular linux distros.

You must respect the FFTW license when enabling this option.

◆ JUCE_DSP_USE_STATIC_FFTW

#define JUCE_DSP_USE_STATIC_FFTW   0

Config: JUCE_DSP_USE_STATIC_FFTW.

If this flag is set, then JUCE will use the statically linked fftw libraries for JUCE's FFT and convolution classes.

You must add the fftw header/library folder to the extra header/library search paths of your JUCE project. You also need to add the fftw library itself to the extra libraries supplied to your JUCE project during linking.

You must respect the FFTW license when enabling this option.

◆ JUCE_DSP_ENABLE_SNAP_TO_ZERO

#define JUCE_DSP_ENABLE_SNAP_TO_ZERO   1

Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO.

Enables code in the dsp module to avoid floating point denormals during the processing of some of the dsp module's filters.

Enabling this will add a slight performance overhead to the DSP module's filters and algorithms. If your audio app already disables denormals altogether (for example, by using the ScopedNoDenormals class or the FloatVectorOperations::disableDenormalisedNumberSupport method), then you can safely disable this flag to shave off a few cpu cycles from the DSP module's filters and algorithms.