#include <tapped_delay.hh>
A linearly interpolated, tappable digital delay using a circular buffer.
This delay can have as many taps as you need. The taps can be specified by the amount of time to delay as a double
, in seconds. When you add a new tap, you get a new output. The argument to the constructor is the total length of the delay and all tap positions must be less than that. For example,
Later, you can connect things to the delay as in
Since this is a linearly interpolated delay, the tap position can be smoothly moved around. So you can also do something like
to get neat effects.
[in] | signal,tap_0,tap_1,... | |
[out] | tap_0,tap_1,... |
Public Member Functions | |
TappedDelay (double duration) | |
void | init () |
void | update () |
string | add_tap () |
![]() | |
virtual void | init ()=0 |
virtual void | update ()=0 |
int | add_input (string name) |
int | add_output (string name) |
int | get_input_index (string name) const |
string | get_input_name (int index) const |
string | get_output_name (int index) const |
int | get_output_index (string name) const |
void | set_input (string name, double value) |
void | set_input (int index, double value) |
double | get_input (int index) const |
double | get_input (string name) const |
double | get_output (string name) const |
double | get_output (int index) const |
void | set_output (int index, double value) |
void | copy_inputs (const Module &source) |
void | copy_outputs (Module &destination) const |
void | configure (std::vector< std::tuple< string, double > > assignments) |
int | num_inputs () const |
int | num_outputs () const |
void | emit (Event e) |
void | set_ts (double s) |
double | get_ts () |
string yase::TappedDelay::add_tap | ( | ) |
Add a new tap and return its name. The position of the tap can then set using the name. For example
|
virtual |
This method should be overridden by derived classes. It will usually be called once, after all modules and connections objects have been added to a synthesizer, but before the synthesizer starts running.
Implements yase::Module.
|
virtual |
This method should be overridden by derived classes. It will be called repeatedly by a synthesizer at a frequency determined by SAMPLE_RATE.
Implements yase::Module.