Csound Csound-dev Csound-tekno Search About

[Csnd] reverbsc

Date2019-01-31 08:59
FromGuillermo Senna
Subject[Csnd] reverbsc
Hi,

Does anyone know if the lowpass filters being fed-back into the delay
lines in the reverbsc opcode have positive or negative gain?

Cheers

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

Date2019-01-31 09:05
FromOeyvind Brandtsegg
SubjectRe: [Csnd] reverbsc
Just looking at Sean Costellos Csound code that was the template for screverb,
it seems like the gein is effectively negative, all things considered.
Code excerpt:

apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 + afilt7 + afilt8)
a1 = a1 * inlevl
adum1   delayr  1
adel1   deltapi idel1 + k1 * kpitchmod
        delayw  a1 + apj - afilt1



Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna <gsenna@gmail.com>:
Hi,

Does anyone know if the lowpass filters being fed-back into the delay
lines in the reverbsc opcode have positive or negative gain?

Cheers

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


--
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

Date2019-01-31 09:12
FromGuillermo Senna
SubjectRe: [Csnd] reverbsc
Thanks, Oeyvind. As suspected then, it's the same thing one can see in
Jan Jacob Hofmann's Ambispace.

On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
> Just looking at Sean Costellos Csound code that was the template for
> screverb,
> it seems like the gein is effectively negative, all things considered.
> Code excerpt:
>
> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 + afilt7 +
> afilt8)
> a1 = a1 * inlevl
> adum1   delayr  1
> adel1   deltapi idel1 + k1 * kpitchmod
>         delayw  a1 + apj - afilt1
>
>
>
> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna :
>
>> Hi,
>>
>> Does anyone know if the lowpass filters being fed-back into the delay
>> lines in the reverbsc opcode have positive or negative gain?
>>
>> Cheers
>>
>> 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
>>
>

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

Date2019-01-31 09:27
FromOeyvind Brandtsegg
SubjectRe: [Csnd] reverbsc
I wonder if a better approach would be to use a balanced matrix (e.g. a Hadamard matrix) where some feedback lines are inverted while others are not.
But still the screverb configuration works pretty well, or do you have specific problems with it?

Den tor. 31. jan. 2019 kl. 10:12 skrev Guillermo Senna <gsenna@gmail.com>:
Thanks, Oeyvind. As suspected then, it's the same thing one can see in
Jan Jacob Hofmann's Ambispace.

On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
> Just looking at Sean Costellos Csound code that was the template for
> screverb,
> it seems like the gein is effectively negative, all things considered.
> Code excerpt:
>
> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 + afilt7 +
> afilt8)
> a1 = a1 * inlevl
> adum1   delayr  1
> adel1   deltapi idel1 + k1 * kpitchmod
>         delayw  a1 + apj - afilt1
>
>
>
> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna <gsenna@gmail.com>:
>
>> Hi,
>>
>> Does anyone know if the lowpass filters being fed-back into the delay
>> lines in the reverbsc opcode have positive or negative gain?
>>
>> Cheers
>>
>> 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
>>
>

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


--
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

Date2019-01-31 09:45
FromGuillermo Senna
SubjectRe: [Csnd] reverbsc
No, I actually like the reverb. At least what I can hear from it in stereo.

But I'm studying Hofmann's Ambispace, where the late reflections are
made by 12 delay lines + LP Filters panned using ambisonics to a virtual
icosahedron. I don't have the speaker setup to hear how good it sounds,
but I hope it's as good as the reverbsc opcode.

I'm wondering if there's a way to relate the feedback level to an RT60.
I've studied Google's Resonance project where they use convolution with
decaying white noise and I like the idea of being able to set the RT60
per frequency band.


On 31/1/19 06:27, Oeyvind Brandtsegg wrote:
> I wonder if a better approach would be to use a balanced matrix (e.g. a
> Hadamard matrix) where some feedback lines are inverted while others are
> not.
> But still the screverb configuration works pretty well, or do you have
> specific problems with it?
>
> Den tor. 31. jan. 2019 kl. 10:12 skrev Guillermo Senna :
>
>> Thanks, Oeyvind. As suspected then, it's the same thing one can see in
>> Jan Jacob Hofmann's Ambispace.
>>
>> On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
>>> Just looking at Sean Costellos Csound code that was the template for
>>> screverb,
>>> it seems like the gein is effectively negative, all things considered.
>>> Code excerpt:
>>>
>>> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 +
>> afilt7 +
>>> afilt8)
>>> a1 = a1 * inlevl
>>> adum1   delayr  1
>>> adel1   deltapi idel1 + k1 * kpitchmod
>>>         delayw  a1 + apj - afilt1
>>>
>>>
>>>
>>> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna >> :
>>>
>>>> Hi,
>>>>
>>>> Does anyone know if the lowpass filters being fed-back into the delay
>>>> lines in the reverbsc opcode have positive or negative gain?
>>>>
>>>> Cheers
>>>>
>>>> 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
>>>>
>> 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
>>
>

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

Date2019-01-31 10:11
FromOeyvind Brandtsegg
SubjectRe: [Csnd] reverbsc
Yes, this way of creating a multichannel reverb is nice. And if it sounds too sparse, you can alsways a a few more delay lines.

There might be algorithms to calculate RT60, but I have usually just done some trial and error, noting the reverb time for different parameter settings and then making a lookup table.
Then, to have separate reverb time control for each frequency band might require separate reverb processors for each band too. At least with the FDN as far as I can see, it will mix all frequency components, since each delay line feeds into all others (directly or indirectly). 
To get separate control of reverberation for each frequency band, perhaps it would be useful to look at modal reverb, as described by JS Abel and others. A bit more processor intensive, but apparently it can be optimized quite a lot. I looked at it briefly, and there are all sorts of fun you could have  there. For some reason I got sidetracked and have nothing to show... not yet anyway :-)


Den tor. 31. jan. 2019 kl. 10:45 skrev Guillermo Senna <gsenna@gmail.com>:
No, I actually like the reverb. At least what I can hear from it in stereo.

But I'm studying Hofmann's Ambispace, where the late reflections are
made by 12 delay lines + LP Filters panned using ambisonics to a virtual
icosahedron. I don't have the speaker setup to hear how good it sounds,
but I hope it's as good as the reverbsc opcode.

I'm wondering if there's a way to relate the feedback level to an RT60.
I've studied Google's Resonance project where they use convolution with
decaying white noise and I like the idea of being able to set the RT60
per frequency band.


On 31/1/19 06:27, Oeyvind Brandtsegg wrote:
> I wonder if a better approach would be to use a balanced matrix (e.g. a
> Hadamard matrix) where some feedback lines are inverted while others are
> not.
> But still the screverb configuration works pretty well, or do you have
> specific problems with it?
>
> Den tor. 31. jan. 2019 kl. 10:12 skrev Guillermo Senna <gsenna@gmail.com>:
>
>> Thanks, Oeyvind. As suspected then, it's the same thing one can see in
>> Jan Jacob Hofmann's Ambispace.
>>
>> On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
>>> Just looking at Sean Costellos Csound code that was the template for
>>> screverb,
>>> it seems like the gein is effectively negative, all things considered.
>>> Code excerpt:
>>>
>>> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 +
>> afilt7 +
>>> afilt8)
>>> a1 = a1 * inlevl
>>> adum1   delayr  1
>>> adel1   deltapi idel1 + k1 * kpitchmod
>>>         delayw  a1 + apj - afilt1
>>>
>>>
>>>
>>> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna <gsenna@gmail.com
>>> :
>>>
>>>> Hi,
>>>>
>>>> Does anyone know if the lowpass filters being fed-back into the delay
>>>> lines in the reverbsc opcode have positive or negative gain?
>>>>
>>>> Cheers
>>>>
>>>> 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
>>>>
>> 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
>>
>

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


--
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

Date2019-01-31 20:11
FromGuillermo Senna
SubjectRe: [Csnd] reverbsc
Thanks! I'll check that modal reverb. Otherwise, I can just copy what
they've done in the Resonance project (which is open source) and replace
the FDN with convolution. They just filter the noise with a band-pass
per frequency band.

By the way, do you think the low-pass filters in reverbsc are
specifically tuned? I've read that they are there just to "allow high
frequencies to naturally decay faster than other frequencies", then why
not replace each 'tone' with a bunch of 'eqfil's or 'pareq's? Each bank
will leak to the other delays, but isn't each low-pass leaking in the
same way right now?


On 31/1/19 07:11, Oeyvind Brandtsegg wrote:
> Yes, this way of creating a multichannel reverb is nice. And if it sounds
> too sparse, you can alsways a a few more delay lines.
>
> There might be algorithms to calculate RT60, but I have usually just done
> some trial and error, noting the reverb time for different parameter
> settings and then making a lookup table.
> Then, to have separate reverb time control for each frequency band might
> require separate reverb processors for each band too. At least with the FDN
> as far as I can see, it will mix all frequency components, since each delay
> line feeds into all others (directly or indirectly).
> To get separate control of reverberation for each frequency band, perhaps
> it would be useful to look at modal reverb, as described by JS Abel and
> others. A bit more processor intensive, but apparently it can be optimized
> quite a lot. I looked at it briefly, and there are all sorts of fun you
> could have  there. For some reason I got sidetracked and have nothing to
> show... not yet anyway :-)
>
>
> Den tor. 31. jan. 2019 kl. 10:45 skrev Guillermo Senna :
>
>> No, I actually like the reverb. At least what I can hear from it in stereo.
>>
>> But I'm studying Hofmann's Ambispace, where the late reflections are
>> made by 12 delay lines + LP Filters panned using ambisonics to a virtual
>> icosahedron. I don't have the speaker setup to hear how good it sounds,
>> but I hope it's as good as the reverbsc opcode.
>>
>> I'm wondering if there's a way to relate the feedback level to an RT60.
>> I've studied Google's Resonance project where they use convolution with
>> decaying white noise and I like the idea of being able to set the RT60
>> per frequency band.
>>
>>
>> On 31/1/19 06:27, Oeyvind Brandtsegg wrote:
>>> I wonder if a better approach would be to use a balanced matrix (e.g. a
>>> Hadamard matrix) where some feedback lines are inverted while others are
>>> not.
>>> But still the screverb configuration works pretty well, or do you have
>>> specific problems with it?
>>>
>>> Den tor. 31. jan. 2019 kl. 10:12 skrev Guillermo Senna >> :
>>>
>>>> Thanks, Oeyvind. As suspected then, it's the same thing one can see in
>>>> Jan Jacob Hofmann's Ambispace.
>>>>
>>>> On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
>>>>> Just looking at Sean Costellos Csound code that was the template for
>>>>> screverb,
>>>>> it seems like the gein is effectively negative, all things considered.
>>>>> Code excerpt:
>>>>>
>>>>> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 +
>>>> afilt7 +
>>>>> afilt8)
>>>>> a1 = a1 * inlevl
>>>>> adum1   delayr  1
>>>>> adel1   deltapi idel1 + k1 * kpitchmod
>>>>>         delayw  a1 + apj - afilt1
>>>>>
>>>>>
>>>>>
>>>>> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna <
>> gsenna@gmail.com
>>>>> :
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Does anyone know if the lowpass filters being fed-back into the delay
>>>>>> lines in the reverbsc opcode have positive or negative gain?
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> 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
>>>>>>
>>>> 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
>>>>
>> 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
>>
>

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

Date2019-02-01 08:35
FromOeyvind Brandtsegg
SubjectRe: [Csnd] reverbsc
Oh, good. I will be very interested in seeing and hearing the multiband reverb you create.

I think there is nothing special about the tone filters in this design AFAIK.,They are just a cheap and simple way to get a gentle attenuation of high frequencies.
All filters use the same cutoff, but of the individual signals to be filtered need to be kept separate (not leak into each other at this stage).
excerpt:
afilt1  tone    adel1 * kgain, ktone
afilt2  tone    adel2 * kgain, ktone
afilt3  tone    adel3 * kgain, ktone
...
;kgain is the global feedback and ktone is the HF rolloff freq



Den tor. 31. jan. 2019 kl. 21:11 skrev Guillermo Senna <gsenna@gmail.com>:
Thanks! I'll check that modal reverb. Otherwise, I can just copy what
they've done in the Resonance project (which is open source) and replace
the FDN with convolution. They just filter the noise with a band-pass
per frequency band.

By the way, do you think the low-pass filters in reverbsc are
specifically tuned? I've read that they are there just to "allow high
frequencies to naturally decay faster than other frequencies", then why
not replace each 'tone' with a bunch of 'eqfil's or 'pareq's? Each bank
will leak to the other delays, but isn't each low-pass leaking in the
same way right now?


On 31/1/19 07:11, Oeyvind Brandtsegg wrote:
> Yes, this way of creating a multichannel reverb is nice. And if it sounds
> too sparse, you can alsways a a few more delay lines.
>
> There might be algorithms to calculate RT60, but I have usually just done
> some trial and error, noting the reverb time for different parameter
> settings and then making a lookup table.
> Then, to have separate reverb time control for each frequency band might
> require separate reverb processors for each band too. At least with the FDN
> as far as I can see, it will mix all frequency components, since each delay
> line feeds into all others (directly or indirectly).
> To get separate control of reverberation for each frequency band, perhaps
> it would be useful to look at modal reverb, as described by JS Abel and
> others. A bit more processor intensive, but apparently it can be optimized
> quite a lot. I looked at it briefly, and there are all sorts of fun you
> could have  there. For some reason I got sidetracked and have nothing to
> show... not yet anyway :-)
>
>
> Den tor. 31. jan. 2019 kl. 10:45 skrev Guillermo Senna <gsenna@gmail.com>:
>
>> No, I actually like the reverb. At least what I can hear from it in stereo.
>>
>> But I'm studying Hofmann's Ambispace, where the late reflections are
>> made by 12 delay lines + LP Filters panned using ambisonics to a virtual
>> icosahedron. I don't have the speaker setup to hear how good it sounds,
>> but I hope it's as good as the reverbsc opcode.
>>
>> I'm wondering if there's a way to relate the feedback level to an RT60.
>> I've studied Google's Resonance project where they use convolution with
>> decaying white noise and I like the idea of being able to set the RT60
>> per frequency band.
>>
>>
>> On 31/1/19 06:27, Oeyvind Brandtsegg wrote:
>>> I wonder if a better approach would be to use a balanced matrix (e.g. a
>>> Hadamard matrix) where some feedback lines are inverted while others are
>>> not.
>>> But still the screverb configuration works pretty well, or do you have
>>> specific problems with it?
>>>
>>> Den tor. 31. jan. 2019 kl. 10:12 skrev Guillermo Senna <gsenna@gmail.com
>>> :
>>>
>>>> Thanks, Oeyvind. As suspected then, it's the same thing one can see in
>>>> Jan Jacob Hofmann's Ambispace.
>>>>
>>>> On 31/1/19 06:05, Oeyvind Brandtsegg wrote:
>>>>> Just looking at Sean Costellos Csound code that was the template for
>>>>> screverb,
>>>>> it seems like the gein is effectively negative, all things considered.
>>>>> Code excerpt:
>>>>>
>>>>> apj = .25 * (afilt1 + afilt2 + afilt3 + afilt4 + afilt5 + afilt6 +
>>>> afilt7 +
>>>>> afilt8)
>>>>> a1 = a1 * inlevl
>>>>> adum1   delayr  1
>>>>> adel1   deltapi idel1 + k1 * kpitchmod
>>>>>         delayw  a1 + apj - afilt1
>>>>>
>>>>>
>>>>>
>>>>> Den tor. 31. jan. 2019 kl. 09:59 skrev Guillermo Senna <
>> gsenna@gmail.com
>>>>> :
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Does anyone know if the lowpass filters being fed-back into the delay
>>>>>> lines in the reverbsc opcode have positive or negative gain?
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> 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
>>>>>>
>>>> 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
>>>>
>> 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
>>
>

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


--
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