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

The GS system delay: three taps off one feedback line, behind a fixed input pre-delay. More...

#include <tabulasonora/send_effects.hpp>

Inheritance diagram for ts::SystemDelay:
ts::Effect

Public Member Functions

 SystemDelay (const DelayParameters &parameters)
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 SystemDelay for_type (int type)
 Creates a delay for a GS type 0–9.
static double send_gain (int send) noexcept
 The send-bus gain for a part's delay send, 0–127.
static double time_milliseconds (int raw)
 Converts a raw time value, 1–115, to milliseconds.
static double ratio_percent (int raw)
 Converts a raw ratio value, 1–120, to a percentage.
static DelayParameters compile (std::span< const int > raw, int sample_rate=32000)
 Compiles ten raw GS parameters into DSP coefficients.

Static Public Attributes

static constexpr int ring_size = 1 << 17
 Size of the delay ring.

Detailed Description

The GS system delay: three taps off one feedback line, behind a fixed input pre-delay.

Constructor & Destructor Documentation

◆ SystemDelay()

ts::SystemDelay::SystemDelay ( const DelayParameters & parameters)
explicit

Member Function Documentation

◆ for_type()

SystemDelay ts::SystemDelay::for_type ( int type)
staticnodiscard

Creates a delay for a GS type 0–9.

◆ send_gain()

double ts::SystemDelay::send_gain ( int send)
inlinestaticnodiscardnoexcept

The send-bus gain for a part's delay send, 0–127.

There is no Control Change for this: the delay send is reachable only over SysEx.

◆ time_milliseconds()

double ts::SystemDelay::time_milliseconds ( int raw)
staticnodiscard

Converts a raw time value, 1–115, to milliseconds.

◆ ratio_percent()

double ts::SystemDelay::ratio_percent ( int raw)
staticnodiscard

Converts a raw ratio value, 1–120, to a percentage.

◆ compile()

DelayParameters ts::SystemDelay::compile ( std::span< const int > raw,
int sample_rate = 32000 )
staticnodiscard

Compiles ten raw GS parameters into DSP coefficients.

◆ reset()

void ts::SystemDelay::reset ( )
overridevirtual

Clears all internal state.

Implements ts::Effect.

◆ process()

void ts::SystemDelay::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::SystemDelay::ring_size = 1 << 17
staticconstexpr

Size of the delay ring.


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