vdelay

vdelay — An interpolating variable time delay.

Description

This is an interpolating variable time delay, it is not very different from the existing implementation (deltapi), it is only easier to use.

Syntax

ares vdelay asig, adel, imaxdel [, iskip]

Initialization

imaxdel -- Maximum value of delay in milliseconds. If adel gains a value greater than imaxdel it is folded around imaxdel. This should not happen.

iskip -- Skip initialization if present and non­zero

Performance

With this unit generator it is possible to do Doppler effects or chorusing and flanging.

asig -- Input signal.

adel -- Current value of delay in milliseconds. Note that linear functions have no pitch change effects. Fast changing values of adel will cause discontinuities in the waveform resulting noise.

Examples

Here is an example of the vdelay opcode. It uses the file vdelay.csd.

Example 1183. Example of the vdelay opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac  ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vdelay.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr   = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1 

ims  = 100				;maximum delay time in msec
aout poscil .8, 220, 1			;make a signal
a2   poscil3 ims/2, 1/p3, 1		;make an LFO
a2   = a2 + ims/2 			;offset the LFO so that it is positive
asig vdelay aout, a2, ims		;use the LFO to control delay time
     outs  asig, asig

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1 ;sine wave

i 1 0 5 

e
</CsScore>
</CsoundSynthesizer> 


Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.

See also

Delay

Credits

Author: Paris Smaragdis
MIT, Cambridge
1995