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

Virtual analog stereo oscillator with band-limited waveforms. More...

#include <gin_oscillators.h>

Classes

struct  Params

Public Member Functions

 StereoOscillator (BandLimitedLookupTables &bllt_)
void setSampleRate (double sr)
void noteOn (float p=-1)
void process (float note, const Params &params, juce::AudioSampleBuffer &buffer)
void processAdding (float note, const Params &params, juce::AudioSampleBuffer &buffer)

Detailed Description

Virtual analog stereo oscillator with band-limited waveforms.

StereoOscillator generates classic analog waveforms (saw, square, triangle, etc.) using band-limited lookup tables to avoid aliasing. It includes post-processing effects like wavefolding and asymmetry for additional timbral variation.

Key Features:

  • Band-limited waveforms (no aliasing)
  • Multiple classic waveforms (saw, square, triangle, sine, etc.)
  • Pulse width modulation for square/pulse waves
  • Wavefolding for harmonic distortion
  • Asymmetry/waveshaping for timbral variation
  • Independent left/right gain control

Parameters (via Params struct):

  • wave: Waveform type (saw, square, triangle, etc.)
  • leftGain/rightGain: Independent stereo output gains
  • pw: Pulse width (0.0 to 1.0) for square/pulse waves
  • fold: Wavefolding amount (0.0 to 1.0)
  • asym: Asymmetry/waveshaping amount (0.0 to 1.0)

Usage:

StereoOscillator osc(bllt);
osc.setSampleRate(44100.0);
osc.noteOn(); // Initialize phase
params.wave = Wave::sawUp;
params.pw = 0.5f;
params.fold = 0.3f;
osc.process(60.0f, params, audioBuffer); // MIDI note 60 (C4)
Generate and hold bandlimited lookup tables for all the common waveforms.
Definition gin_bandlimitedlookuptable.h:292
StereoOscillator(BandLimitedLookupTables &bllt_)
Definition gin_oscillators.h:59
@ sawUp
Upward sawtooth.
Definition gin_bandlimitedlookuptable.h:280
Definition gin_oscillators.h:62
float fold
Definition gin_oscillators.h:67
Wave wave
Definition gin_oscillators.h:63
float pw
Definition gin_oscillators.h:66
See also
BandLimitedLookupTables, VoicedStereoOscillator, Wave

Constructor & Destructor Documentation

◆ StereoOscillator()

StereoOscillator::StereoOscillator ( BandLimitedLookupTables & bllt_)

Member Function Documentation

◆ setSampleRate()

void StereoOscillator::setSampleRate ( double sr)

◆ noteOn()

void StereoOscillator::noteOn ( float p = -1)

◆ process()

void StereoOscillator::process ( float note,
const Params & params,
juce::AudioSampleBuffer & buffer )

References processAdding().

◆ processAdding()

void StereoOscillator::processAdding ( float note,
const Params & params,
juce::AudioSampleBuffer & buffer )

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