deltapxw — Mixes the input signal to a delay line.
deltapxw mixes the input signal to a delay line. This opcode can be mixed with reading units (deltap, deltapn, deltapi, deltap3, and deltapx) in any order; the actual delay time is the difference of the read and write time. This opcode can read from and write to a delayr/delayw delay line with interpolation.
iwsize -- interpolation window size in samples. Allowed values are integer multiplies of 4 in the range 4 to 1024. iwsize = 4 uses cubic interpolation. Increasing iwsize improves sound quality at the expense of CPU usage, and minimum delay time.
ain -- Input signal.
adel -- Delay time in seconds.
a1 delayr idlr deltapxw a2, adl1, iws1 a3 deltapx adl2, iws2 deltapxw a4, adl3, iws3 delayw a5
Minimum and maximum delay times:
idlr >= 1/kr Delay line length adl1 >= (iws1/2)/sr Write before read adl1 <= idlr - (1 + iws1/2)/sr (allows shorter delays) adl2 >= 1/kr + (iws2/2)/sr Read time adl2 <= idlr - (1 + iws2/2)/sr adl2 >= adl1 + (iws1 + iws2) / (2*sr) adl2 >= 1/kr + adl3 + (iws2 + iws3) / (2*sr) adl3 >= (iws3/2)/sr Write after read adl3 <= idlr - (1 + iws3/2)/sr (allows feedback)
Note | |
---|---|
Window sizes for opcodes other than deltapx are: deltap, deltapn: 1, deltapi: 2 (linear), deltap3: 4 (cubic) |
Here is an example of the deltapxw opcode. It uses the file deltapxw.csd.
Example 191. Example of the deltapxw 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 deltapxw.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 a1 phasor 300 a1 = a1 - 0.5 a_ delayr 1 adel phasor 4 adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2 deltapxw a1, adel, 32 adel phasor 2 adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2 deltapxw a1, adel, 32 adel = 0.3 a2 deltapx adel, 32 a1 = 0 delayw a1 outs a2*.7, a2*.7 endin </CsInstruments> <CsScore> i1 0 5 e </CsScore> </CsoundSynthesizer>