DSP modules#
Filter modules#
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES#
-
class lowPassFilter : public YSE::DSP::dspObject#
Low-pass filter packaged as a chainable
dspObject.Wraps
DSP::lowPassfor use in a sound’s DSP chain viaYSE::sound::setDSP. Processes every channel of the multichannel buffer independently, each with its own filter state (see the N-channel contract ondspObject::process).Public Functions
-
lowPassFilter()#
-
inline ~lowPassFilter() override#
-
lowPassFilter &frequency(Flt value)#
Set the cutoff frequency in Hz.
-
lowPassFilter()#
-
class lowPassFilter : public YSE::DSP::dspObject#
-
namespace MODULES#
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class highPassFilter : public YSE::DSP::dspObject#
High-pass filter packaged as a chainable
dspObject.Wraps
DSP::highPassfor use in a sound’s DSP chain viaYSE::sound::setDSP. Processes every channel of the multichannel buffer independently, each with its own filter state (see the N-channel contract ondspObject::process).Public Functions
-
highPassFilter()#
-
inline ~highPassFilter() override#
-
highPassFilter &frequency(Flt value)#
Set the cutoff frequency in Hz.
-
highPassFilter()#
-
class highPassFilter : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class bandPassFilter : public YSE::DSP::dspObject#
Resonant band-pass filter packaged as a chainable
dspObject.Wraps
DSP::bandPassfor use in a sound’s DSP chain viaYSE::sound::setDSP. Processes every channel of the multichannel buffer independently, each with its own filter state (see the N-channel contract ondspObject::process).Public Functions
-
bandPassFilter()#
-
inline ~bandPassFilter() override#
-
bandPassFilter &frequency(Flt value)#
Set the centre frequency in Hz.
-
bandPassFilter &setQ(Flt value)#
Set the resonance (Q factor).
-
bandPassFilter()#
-
class bandPassFilter : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class sweepFilter : public YSE::DSP::dspObject#
Auto-wah / sweep filter — LFO-modulated resonant filter as a chainable
dspObject.Internally an oscillator drives a
vcfto sweep its cutoff. The oscillator shape is selectable at construction. ChooseSAWfor a classic wah ramp,TRIANGLEfor a smoother sweep,SQUAREfor a step.Public Types
Public Functions
-
inline ~sweepFilter() override#
-
sweepFilter &speed(Flt value)#
Set the LFO speed in Hz.
-
sweepFilter &depth(Int value)#
Set the sweep depth as 0–100.
-
sweepFilter &frequency(Int value)#
Set the centre frequency as 0–100.
-
inline ~sweepFilter() override#
-
class sweepFilter : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
Delay modules#
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class basicDelay : public YSE::DSP::dspObject#
Three-tap delay packaged as a chainable
dspObject.Reads the same delay line at up to three offsets, each with its own time and gain. Use
highPassDelay/lowPassDelayfor the same effect with a filter in the feedback path.Processes every channel of the multichannel buffer independently, each with its own delay line (see the N-channel contract on
dspObject::process).Subclassed by YSE::DSP::MODULES::highPassDelay, YSE::DSP::MODULES::lowPassDelay
Public Types
Public Functions
-
basicDelay()#
-
inline ~basicDelay() override#
-
basicDelay &set(DELAY_NR nr, Flt time, Flt gain)#
Configure one of the three taps.
- Parameters:
nr – Tap to configure.
time – Delay time in milliseconds.
gain – Gain for this tap.
Protected Functions
Protected Attributes
-
perChannel<delayChannel> channels#
-
basicDelay()#
-
class basicDelay : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class highPassDelay : public YSE::DSP::MODULES::basicDelay#
basicDelaywith a high-pass filter in front.Useful for ducking bass build-up in long delay tails. Inherits the three-tap layout from
basicDelay.Public Functions
-
highPassDelay()#
-
highPassDelay &frequency(Flt value)#
Set the high-pass cutoff frequency in Hz.
-
highPassDelay()#
-
class highPassDelay : public YSE::DSP::MODULES::basicDelay#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class lowPassDelay : public YSE::DSP::MODULES::basicDelay#
basicDelaywith a low-pass filter in front.Darkens each successive echo — the classic “tape” delay character. Inherits the three-tap layout from
basicDelay.Public Functions
-
lowPassDelay()#
-
lowPassDelay &frequency(Flt value)#
Set the low-pass cutoff frequency in Hz.
-
lowPassDelay()#
-
class lowPassDelay : public YSE::DSP::MODULES::basicDelay#
-
namespace MODULES
-
namespace DSP
Effect modules#
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
class hilbert#
Hilbert transform — splits a signal into two outputs 90° out of phase.
Used to build single-side-band modulators, frequency shifters, and analytic-signal envelope followers. Implemented as two biquad cascades per channel;
L1/L2form the in-phase path,R1/R2the quadrature path.Public Functions
-
hilbert()#
-
hilbert()#
-
class hilbert#
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
class ringModulator : public YSE::DSP::dspObject#
Ring modulator as a chainable
dspObject.Multiplies the input by an internal sine carrier — classic bell-like / robot-voice timbres. The carrier frequency is the only user-controllable parameter.
Public Functions
-
ringModulator()#
-
inline ~ringModulator() override#
-
ringModulator &frequency(Flt value)#
Set the carrier frequency in Hz.
-
ringModulator()#
-
class ringModulator : public YSE::DSP::dspObject#
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
class sineWave : public YSE::DSP::dspSourceObject#
Sine-wave sound source.
The simplest possible source for
YSE::sound::create(dspSourceObject&, ...). Useful as a test tone, a tuning reference, or the building block for an additive synth.Public Functions
-
sineWave()#
-
virtual void frequency(float value) override#
Set the sine frequency in Hz.
Takes effect immediately, or on the next note-on transition if the sound is in a stopped/paused state.
-
float frequency()#
Current frequency.
-
virtual void process(SOUND_STATUS &intent) override#
dspSourceObject audio-thread entry point.
-
virtual void process(SOUND_STATUS &intent, Int &latency)#
Variant of
processthat reports latency.Audio-thread only.
-
sineWave()#
-
class sineWave : public YSE::DSP::dspSourceObject#
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class granulator : public YSE::DSP::dspObject#
Granular synthesis effect as a chainable
dspObject.Maintains a circular pool of recent input audio, then spawns short “grains” sampled from random positions in that pool. The grain rate, length, and pitch are configurable, each with a random component for natural variation. Use for clouds, textures, time-stretch, and pitch-shifting effects.
Public Functions
-
granulator(UInt poolSize = SAMPLERATE * 5, UInt maxGrains = 16)#
Construct the granulator.
- Parameters:
poolSize – Size of the circular input buffer in samples. Limits how far back into the input the granulator can reach. Default is 5 seconds at the engine’s current sample rate.
maxGrains – Maximum number of grains alive simultaneously.
-
inline ~granulator() override#
-
virtual void process(std::vector<YSE::DSP::buffer> &buffer) override#
dspObject audio-thread entry point.
-
granulator &grainFrequency(UInt value)#
Set the spawn rate in grains per second.
-
granulator &grainLength(UInt samples, UInt random = 0)#
Set the grain length.
- Parameters:
samples – Length in samples.
random – Random variation around
samples, in samples.
-
granulator &grainTranspose(Flt pitch, Flt random = 0)#
Set the grain pitch shift.
- Parameters:
pitch – Pitch multiplier (1.0 = unchanged, 2.0 = octave up).
random – Random pitch variation.
-
granulator &gain(Flt value)#
Set the output gain.
Private Members
-
std::shared_ptr<std::vector<grain>> grainPool#
-
granulator(UInt poolSize = SAMPLERATE * 5, UInt maxGrains = 16)#
-
class granulator : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class phaser : public YSE::DSP::dspObject#
Phaser effect as a chainable
dspObject.Four-stage all-pass cascade modulated by a triangle LFO. Produces the familiar sweeping “jet plane” sound. Processes every channel of the multichannel buffer independently — the LFO is shared (one sweep for the whole buffer) but each channel keeps its own all-pass cascade state (see the N-channel contract on
dspObject::process).Public Functions
-
phaser()#
-
inline ~phaser() override#
-
phaser &frequency(Flt value)#
Set the sweep LFO frequency.
Typically very low; default 0.3 Hz. Must be > 0.
Private Members
-
perChannel<allpassChain> chain#
-
struct allpassChain#
One channel’s four-stage all-pass cascade state.
Public Members
-
realOneZeroReversed rzero1#
-
realOneZeroReversed rzero2#
-
realOneZeroReversed rzero3#
-
realOneZeroReversed rzero4#
-
realOnePole rpole1#
-
realOnePole rpole2#
-
realOnePole rpole3#
-
realOnePole rpole4#
-
realOneZeroReversed rzero1#
-
phaser()#
-
class phaser : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
namespace DSP
Audio buffers, oscillators, filters, envelopes, and effect modules.
Build chains of
DSP::dspObjectto process a sound,DSP::dspSourceObjectto feed one. Single-channel audio data lives inDSP::bufferand its drawing / file / wavetable subclasses.-
namespace MODULES
-
class difference : public YSE::DSP::dspObject#
FM difference-tone synthesis as a chainable
dspObject.Generates a sine carrier and clips the sum of input and carrier to produce difference-frequency intermodulation tones. A simple FM/distortion hybrid for buzzy, bell-like textures.
Note
Mono only — feeds the first channel of the multichannel buffer.
Public Functions
-
difference()#
-
inline ~difference() override#
-
difference &frequency(Flt value)#
Set the carrier frequency in Hz.
-
difference &litude(Flt value)#
Set the carrier amplitude.
-
difference()#
-
class difference : public YSE::DSP::dspObject#
-
namespace MODULES
-
namespace DSP