delay and vdelay opcode sound difference
Date | 2016-11-07 02:15 |
From | Emmett Palaima |
Subject | delay and vdelay opcode sound difference |
Hi, I have been doing some experiments with reverb design recently, and noticed that when I switch out the delay and vdelay opcodes the sound of my reverb is very noticeably affected, even if the value of the delay times remains the same. What is happening to cause this?
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Here is the example (P.491 in the Csound book) I was working on, all I did was change the UDO (a double nested allpass filter) I am passing in, vdoublenested uses a vdelay, and double nested uses a delay, both are given the same fixed values: opcode vdoubleNested, a, akkkkkkkkk setksmps 1 ain, kffo, kfbo, kdel1, kff2, kfb2, kdel2, kff3, kfb3, kdel3 xin adel1 init 0 adel2 init 0 adel3 init 0 asum1 init 0 asum2 init 0 aout init 0 asum1 = adel2 - kff2 * adel1 ;1st Inner Feedforward asum2 = adel3 - kff3 * adel2 ;2nd Inner Feedforward aout = asum2 - kffo * ain ;Outer Feedforward adel1 vdelay3 ain + kfbo * aout, kdel1, .5 ;Outer Feedback adel2 vdelay3 adel1 + kfb2 * asum1, kdel2, .5 ;1st Inner Feedback adel3 vdelay3 adel2 + kfb3 * asum2, kdel3, .5 ;2nd Inner Feedback xout aout
endop
opcode doubleNested, a, akkikkikki ;i setksmps 1 ain, kffo, kfbo, idel1, kff2, kfb2, idel2, kff3, kfb3, idel3 xin ;imaxdel xin adel1 init 0 adel2 init 0 adel3 init 0 asum1 init 0 asum2 init 0 aout init 0 asum1 = adel2 - kff2 * adel1 ;1st Inner Feedforward asum2 = adel3 - kff3 * adel2 ;2nd Inner Feedforward aout = asum2 - kffo * ain ;Outer Feedforward adel1 delay ain + kfbo * aout, idel1 ;Outer Feedback adel2 delay adel1 + kfb2 * asum1, idel2 ;1st Inner Feedback adel3 delay adel2 + kfb3 * asum2, idel3 ;2nd Inner Feedback xout aout endop instr csbookLargeRoom ;p.491 aout init 0 ain init 0 adn init 0 idelay init 0 krand rand 1 kport port krand/100, .1 adry, adry2 ins aflt01 butterlp adry, 4000 ;Pre-Filter aflt02 butterbp .5 * adn, 1000, 800;Feedback Filter ain = aflt01 + .5 * aflt02 ap1 AllPass ain, .3, .3, .008 ap2 AllPass ain, .3, .3, .012 adel1 delay ap2, .004 adel2 delay adel1, .017 asn singleNested adel2, .5, .5, .025, .25, .25, .062 adel3 delay asn, .023 adel4 delay adel3, .003 adn doubleNested adel4, .5, .5, .120, .25, .25, .076, .25, .25, .030 aout = 1.5 * adel1 + .8 * adel3 + .8 * adn outs aout, aout
endin |
Date | 2016-11-07 02:29 |
From | Steven Yi |
Subject | Re: delay and vdelay opcode sound difference |
I imagine the difference is due to vdelay being a linear interpolating delay line, while delay only does whole sample delays. I think with the short delay times used for a reverb, interpolation of some sort would be necessary. On Sun, Nov 6, 2016 at 9:15 PM, Emmett Palaima |
Date | 2016-11-07 06:29 |
From | Victor Lazzarini |
Subject | Re: delay and vdelay opcode sound difference |
also remember that the vdelay takes delay times in milliseconds and delay in seconds. Victor Lazzarini Dean of Arts, Celtic Studies, and Philosophy Maynooth University Ireland > On 7 Nov 2016, at 02:29, Steven Yi |
Date | 2016-11-15 22:06 |
From | Emmett Palaima |
Subject | Re: delay and vdelay opcode sound difference |
Wow. I missed that milliseconds vs seconds entirely, that's definitely it. That is also good to note the difference in interpolation as well. I'll keep that in mind when I'm using the opcodes in a design. Thanks! On Mon, Nov 7, 2016 at 1:29 AM, Victor Lazzarini <Victor.Lazzarini@nuim.ie> wrote: also remember that the vdelay takes delay times in milliseconds and delay in seconds. |