signal/delay
src/signal/delay.tur
defn
delay-n
(delay-n [n :int])
delay the input by `n` whole samples.
Example
((delay-n 441) (sine 440.0 0.0))
defn
comb-ff-n
(comb-ff-n [n :int gain :float])
feedforward comb filter, delay in samples.
Parameters
| n | delay in samples | |
| gain | amount of the delayed input added back |
defn
comb-n
(comb-n [n :int feedback :float])
feedback comb filter, delay in samples.
Parameters
| n | delay in samples | |
| feedback | echo decay factor, |feedback| < 1 |
defn
allpass-n
(allpass-n [n :int gain :float])
Schroeder allpass filter, delay in samples.
Parameters
| n | delay in samples | |
| gain | allpass coefficient, |gain| < 1 |
defn
delay
(delay [sample-rate :float seconds :float])
delay the input by `seconds`, at `sample-rate` Hz.
Example
((delay 44100.0 0.25) (sine 440.0 0.0))
defn
comb-ff
(comb-ff [sample-rate :float seconds :float gain :float])
feedforward comb filter, delay in seconds.
defn
comb
(comb [sample-rate :float seconds :float feedback :float])
feedback comb filter, delay in seconds.
Example
((comb 44100.0 0.0297 0.805) input) ;; a classic Schroeder reverb comb
defn
allpass
(allpass [sample-rate :float seconds :float gain :float])
Schroeder allpass filter, delay in seconds.
Internal definitions
__delay_clamp-- clamp a delay length to the supported range.__delay_to_int-- truncate a (non-negative, bounded) double to int.__delay_seconds_to_samples-- round seconds * sample-rate to whole samples.__delay_alloc-- allocate a zeroed ring-buffer cell of `n` samples.__delay_step-- plain delay: emit the sample written `len` steps ago.__delay_comb_ff_step-- feedforward comb: y = x + g * x[n-D].__delay_comb_fb_step-- feedback comb: y = x + g * y[n-D].__delay_allpass_step-- Schroeder allpass.