JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce_dsp.h File Reference
#include <juce_audio_basics/juce_audio_basics.h>
#include <juce_audio_formats/juce_audio_formats.h>
#include <complex>
#include "maths/juce_SpecialFunctions.h"
#include "maths/juce_Matrix.h"
#include "maths/juce_Phase.h"
#include "maths/juce_Polynomial.h"
#include "maths/juce_FastMathApproximations.h"
#include "maths/juce_LookupTable.h"
#include "maths/juce_LogRampedValue.h"
#include "containers/juce_AudioBlock.h"
#include "containers/juce_FixedSizeFunction.h"
#include "processors/juce_ProcessContext.h"
#include "processors/juce_ProcessorWrapper.h"
#include "processors/juce_ProcessorChain.h"
#include "processors/juce_ProcessorDuplicator.h"
#include "processors/juce_IIRFilter.h"
#include "processors/juce_FIRFilter.h"
#include "processors/juce_StateVariableFilter.h"
#include "processors/juce_FirstOrderTPTFilter.h"
#include "processors/juce_Panner.h"
#include "processors/juce_DelayLine.h"
#include "processors/juce_Oversampling.h"
#include "processors/juce_BallisticsFilter.h"
#include "processors/juce_LinkwitzRileyFilter.h"
#include "processors/juce_DryWetMixer.h"
#include "processors/juce_StateVariableTPTFilter.h"
#include "frequency/juce_FFT.h"
#include "frequency/juce_Convolution.h"
#include "frequency/juce_Windowing.h"
#include "filter_design/juce_FilterDesign.h"
#include "widgets/juce_Reverb.h"
#include "widgets/juce_Bias.h"
#include "widgets/juce_Gain.h"
#include "widgets/juce_WaveShaper.h"
#include "widgets/juce_Oscillator.h"
#include "widgets/juce_LadderFilter.h"
#include "widgets/juce_Compressor.h"
#include "widgets/juce_NoiseGate.h"
#include "widgets/juce_Limiter.h"
#include "widgets/juce_Phaser.h"
#include "widgets/juce_Chorus.h"
Include dependency graph for juce_dsp.h:

Namespaces

 juce
 
 juce::dsp
 
 juce::dsp::util
 

Macros

#define JUCE_ASSERTION_FIRFILTER   1
 Config: JUCE_ASSERTION_FIRFILTER. More...
 
#define JUCE_DSP_ENABLE_SNAP_TO_ZERO   1
 Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO. More...
 
#define JUCE_DSP_H_INCLUDED
 
#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_USE_SIMD   0
 
#define JUCE_VECTOR_CALLTYPE
 

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

◆ JUCE_DSP_H_INCLUDED

#define JUCE_DSP_H_INCLUDED

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

If you're using the Projucer's Visual Studio exporter, you should also set the "Use MKL Library (oneAPI)" option in the exporter settings to "Sequential" or "Parallel". If you're not using the Visual Studio exporter, the folder containing the mkl_dfti.h header must be in your header search paths, and you must link against all the necessary MKL libraries.

◆ 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_USE_SIMD

#define JUCE_USE_SIMD   0

◆ JUCE_VECTOR_CALLTYPE

#define JUCE_VECTOR_CALLTYPE