delayw
Writes the audio signal to a digital delay line.
Syntax
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