Skip to content

delayw

Writes the audio signal to a digital delay line.

Syntax

delayw(asig)
delayw asig

Performance

When several delayr units precede the writers, each delayw pairs at initialization with the oldest reader that still needs a writer. The optional index returned by delayr selects delay taps and does not change this pairing. See the indexed delay example.

delayw writes asig into the delay area established by the preceding delayr unit. Viewed as a pair, these two units permit the formation of modified feedback loops, etc. However, there is a lower bound on the value of idlt, which must be at least 1 control period (or 1/kr).

Examples

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

Example of the delayw opcode.
<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 delayw.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

gasig  init 0   
gidel  = 1              ;delay time in seconds

instr 1

ain  pluck .7, 440, 1000, 0, 1
     outs ain, ain

vincr gasig, ain        ;send to global delay
endin

instr 2 

ifeedback = p4  

abuf2   delayr  gidel
adelL   deltap  .4              ;first tap (on left channel)
adelM   deltap  1               ;second tap (on middle channel)
        delayw  gasig + (adelL * ifeedback)

abuf3   delayr  gidel
kdel    line    1, p3, .01      ;vary delay time
adelR   deltap  .65 * kdel      ;one pitch changing tap (on the right chn.)
        delayw  gasig + (adelR * ifeedback)
;make a mix of all deayed signals       
        outs    adelL + adelM, adelR + adelM

clear   gasig
endin

</CsInstruments>
<CsScore>

i 1 0 1
i 1 3 1
i 2 0 3  0      ;no feedback
i 2 3 8 .8      ;lots of feedback
e
</CsScore>
</CsoundSynthesizer>

See also

Delay