Gin
Loading...
Searching...
No Matches
Modulation Class Reference

Modulated delay effect for chorus, flanger, and phaser effects. More...

#include <gin_modulation.h>

Public Member Functions

 Modulation (float maxDelay_=30.0f/1000.0f)
void setSampleRate (double sr)
void reset ()
void setParams (float delay_, float rate_, float depth_, float width_, float mix_)
void process (juce::AudioSampleBuffer &buffer)

Detailed Description

Modulated delay effect for chorus, flanger, and phaser effects.

Modulation uses an LFO to modulate a delay line, creating time-varying delay effects. By adjusting delay time, modulation rate, depth, and stereo width, you can create chorus, flanger, and phaser-like effects.

Key Features:

  • Sinusoidal LFO modulation
  • Stereo width control (independent L/R modulation)
  • Configurable delay time, rate, and depth
  • Wet/dry mix control
  • High-quality Lagrange interpolation

Parameters:

  • delay: Base delay time in seconds (typically 10-30ms)
  • rate: LFO frequency in Hz (typically 0.1-5 Hz)
  • depth: Modulation depth in seconds (how much delay varies)
  • width: Stereo width (0.0 = mono, 1.0 = full stereo L/R phase offset)
  • mix: Wet/dry mix (0.0 = dry, 1.0 = wet)

Effect Types:

  • Chorus: delay ~20ms, rate ~0.5Hz, depth ~10ms, mix ~0.5
  • Flanger: delay ~3ms, rate ~0.2Hz, depth ~5ms, mix ~0.5
  • Vibrato: delay ~5ms, rate ~5Hz, depth ~2ms, mix ~1.0

Usage:

Modulation chorus(0.03f); // 30ms max delay
chorus.setSampleRate(44100.0);
// Create a chorus effect
chorus.setParams(
0.020f, // 20ms base delay
0.5f, // 0.5 Hz modulation
0.010f, // 10ms depth
0.5f, // 50% stereo width
0.5f // 50% wet/dry mix
);
chorus.process(audioBuffer);
Modulation(float maxDelay_=30.0f/1000.0f)
Definition gin_modulation.h:65
See also
DelayLine

Constructor & Destructor Documentation

◆ Modulation()

Modulation::Modulation ( float maxDelay_ = 30.0f / 1000.0f)

Member Function Documentation

◆ setSampleRate()

void Modulation::setSampleRate ( double sr)

◆ reset()

void Modulation::reset ( )

◆ setParams()

void Modulation::setParams ( float delay_,
float rate_,
float depth_,
float width_,
float mix_ )

◆ process()

void Modulation::process ( juce::AudioSampleBuffer & buffer)

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