delayk

delayk — Delays an input signal by some time interval.

Description

k-rate delay opcodes

Syntax

kr delayk   ksig, idel[, imode]
kr vdel_k   ksig, kdel, imdel[, imode]

Initialization

idel -- delay time (in seconds) for delayk. It is rounded to the nearest integer multiple of a k-cycle (i.e. 1/kr).

imode -- sum of 1 for skipping initialization (e.g. in tied notes) and 2 for holding the first input value during the initial delay, instead of outputting zero. This is mainly of use when delaying envelopes that do not start at zero.

imdel -- maximum delay time for vdel_k, in seconds.

Performance

kr -- the output signal. Note: neither of the opcodes interpolate the output.

ksig -- the input signal.

kdel -- delay time (in seconds) for vdel_k. It is rounded to the nearest integer multiple of a k-cycle (i.e. 1/kr).

Examples

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

Example 177. Example of the delayk 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     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o delayk.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
;example shows "delayk" for fm index and 
;a second "delayk" for panning
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

gisin ftgen 0, 0, 2^10, 10, 1

instr 1

kenv1 transeg 0, .02, 0, 1, 3.98, -6, 0 ;envelope
kenv2 delayk kenv1, 2			;delayed by two seconds
kindx expon 5, p3, 1			;fm index decreasing over p3
asig  foscili .6, 400, 1, 11/4, kindx, gisin
kpan1 linseg 0, 4, 1			;panning for first sound
kpan2 linseg 1, 4, 0			;panning for second sound ...
kpan2 delayk kpan2, 2			;delayed by two seconds
a1 = asig * kenv1
a2 = asig * kenv2

aL1,aR1 pan2 a1, kpan1
aL2,aR2 pan2 a2, kpan2
        outs aL1+aL2, aR1+aR2

endin
</CsInstruments>
<CsScore>

i 1 0 6
e
</CsScore>
</CsoundSynthesizer>


Credits

Istvan Varga.