Gin
Loading...
Searching...
No Matches
Public Member Functions | List of all members
AudioEquationParser Class Reference

Equation parser with audio-specific functions for DSP processing. More...

#include <gin_audioequationparser.h>

Inheritance diagram for AudioEquationParser:

Public Member Functions

 AudioEquationParser ()=default
 
void addConstants ()
 Adds audio constants like pi, sampleRate, e, etc.
 
void addUtilities ()
 Adds utility functions like clamp, wrap, fold, abs, etc.
 
void addOscillatorFunctions ()
 Adds oscillator functions: sine, saw, square, triangle, noise, etc.
 
void addSynthFilterFunctions ()
 Adds synthesis filters: lp12, lp24, hp12, hp24, bp12, bp24, notch12, notch24.
 
void addEffectFilterFunctions ()
 Adds effect-style filters with resonance control for creative processing.
 
- Public Member Functions inherited from EquationParser
 EquationParser ()
 
 EquationParser (const juce::String &equation)
 
 ~EquationParser ()
 
void defineNameChars (const juce::String &chars)
 
void setEquation (const juce::String &equation)
 
void clearVariables ()
 
void addVariable (const juce::String &name, double *value)
 
void setVarFactory (std::function< double *(const char *)> fun)
 
juce::StringArray getUsedVariables ()
 
void clearConstants ()
 
void addConstant (const juce::String &name, double value)
 
void addFunction (const juce::String &name, std::function< double(int id, const juce::String &)> fun)
 
void addFunction (const juce::String &name, std::function< double(int id)> fun)
 
void addFunction (const juce::String &name, std::function< double(int id, double)> fun)
 
void addFunction (const juce::String &name, std::function< double(int id, double, double)> fun)
 
void addFunction (const juce::String &name, std::function< double(int id, double, double, double)> fun)
 
void addFunction (const juce::String &name, std::function< double(int id, double, double, double, double)> fun)
 
double evaluate ()
 
bool hasError () const
 
juce::String getError () const
 
- Public Member Functions inherited from AudioFunctionHost
void setSampleRate (double sr)
 
double getSampleRate ()
 
void reset ()
 
void addConstants (gin::EquationParser &)
 
void addUtilities (gin::EquationParser &)
 
void addOscillatorFunctions (gin::EquationParser &)
 
void addSynthFilterFunctions (gin::EquationParser &)
 
void addEffectFilterFunctions (gin::EquationParser &)
 
template<class T >
T * getFuncParams (int i, double sr)
 

Additional Inherited Members

- Public Attributes inherited from AudioFunctionHost
gin::BandLimitedLookupTables * lookupTables = nullptr
 
- Protected Attributes inherited from AudioFunctionHost
std::map< int, std::unique_ptr< FuncState > > funcStates
 
double sampleRate = 44100.0
 

Detailed Description

Equation parser with audio-specific functions for DSP processing.

AudioEquationParser extends EquationParser with audio and synthesis functions, allowing users to create custom audio processing algorithms using mathematical expressions. It provides oscillators, filters, utilities, and audio constants that can be evaluated in real-time for creative sound design.

Key Features:

The parser is particularly useful for:

Usage:

parser.addConstants();
parser.addUtilities();
// Parse a custom oscillator equation
parser.setEquation("sin(phase * 2 * pi) * 0.5 + saw(phase) * 0.5");
// Evaluate for each sample
for (int i = 0; i < numSamples; i++)
{
float phase = (float)i / sampleRate;
parser.setVariable("phase", phase);
float output = parser.evaluate();
buffer[i] = output;
}
// Create a filtered oscillator
parser.setEquation("lp24(saw(phase), cutoff, resonance)");
parser.setVariable("cutoff", 1000.0f);
parser.setVariable("resonance", 0.7f);
Equation parser with audio-specific functions for DSP processing.
Definition gin_audioequationparser.h:71
void addSynthFilterFunctions()
Adds synthesis filters: lp12, lp24, hp12, hp24, bp12, bp24, notch12, notch24.
void addUtilities()
Adds utility functions like clamp, wrap, fold, abs, etc.
void addConstants()
Adds audio constants like pi, sampleRate, e, etc.
void addOscillatorFunctions()
Adds oscillator functions: sine, saw, square, triangle, noise, etc.
double sampleRate
Definition gin_audiofunctions.h:439
void setEquation(const juce::String &equation)
double evaluate()
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
See also
EquationParser, AudioFunctionHost

Constructor & Destructor Documentation

◆ AudioEquationParser()

AudioEquationParser::AudioEquationParser ( )
default

Member Function Documentation

◆ addConstants()

void AudioEquationParser::addConstants ( )

Adds audio constants like pi, sampleRate, e, etc.

◆ addUtilities()

void AudioEquationParser::addUtilities ( )

Adds utility functions like clamp, wrap, fold, abs, etc.

◆ addOscillatorFunctions()

void AudioEquationParser::addOscillatorFunctions ( )

Adds oscillator functions: sine, saw, square, triangle, noise, etc.

◆ addSynthFilterFunctions()

void AudioEquationParser::addSynthFilterFunctions ( )

Adds synthesis filters: lp12, lp24, hp12, hp24, bp12, bp24, notch12, notch24.

◆ addEffectFilterFunctions()

void AudioEquationParser::addEffectFilterFunctions ( )

Adds effect-style filters with resonance control for creative processing.


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