Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
Loading...
Searching...
No Matches
ts::Chorus Class Referencefinal

The GS chorus: a modulated delay line with two anti-phase taps. More...

#include <tabulasonora/send_effects.hpp>

Inheritance diagram for ts::Chorus:
ts::Effect

Public Member Functions

 Chorus (const ChorusPreset &preset)
void reset () override
 Clears all internal state.
void process (std::span< const float > input, std::span< float > left, std::span< float > right) override
 Processes a block.
Public Member Functions inherited from ts::Effect
virtual ~Effect ()=default

Static Public Member Functions

static Chorus for_type (std::optional< int > type)
 Creates a chorus for a GS type 0–7, or the default when none is given.
static double send_gain (int controller) noexcept
 The send-bus gain for CC#93.

Static Public Attributes

static constexpr int ring_size = 65536
 Size of the delay ring.

Detailed Description

The GS chorus: a modulated delay line with two anti-phase taps.

A 24-bit signed sawtooth drives a triangle from its magnitude; the two taps read 180° apart, which is what makes the output stereo from a mono send. The engine has a companion right-hand stage, but it is gated off for every GS type, so the left stage alone is correct.

Constructor & Destructor Documentation

◆ Chorus()

ts::Chorus::Chorus ( const ChorusPreset & preset)
inlineexplicit

Member Function Documentation

◆ for_type()

Chorus ts::Chorus::for_type ( std::optional< int > type)
staticnodiscard

Creates a chorus for a GS type 0–7, or the default when none is given.

◆ send_gain()

double ts::Chorus::send_gain ( int controller)
inlinestaticnodiscardnoexcept

The send-bus gain for CC#93.

◆ reset()

void ts::Chorus::reset ( )
overridevirtual

Clears all internal state.

Implements ts::Effect.

◆ process()

void ts::Chorus::process ( std::span< const float > input,
std::span< float > left,
std::span< float > right )
overridevirtual

Processes a block.

Implements ts::Effect.

Member Data Documentation

◆ ring_size

int ts::Chorus::ring_size = 65536
staticconstexpr

Size of the delay ring.


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