Julius,

Thanks for the quick response! Brilliant, I'll give that a try.

For the record, my starting point _was/is_ `fb_fcomb` (floats), not
`fb_comb` (ints)

But I'll see if the interpolation helps things. The other thing I was
considering was a "post-signal" `ff_fcomb` on the resonant peak pitc
and its harmonics, one with a negative coefficient to dampen/negate the
original (i.e. comb troughs on a certain pitch instead of comb peaks).

It was promising, did help a bit, but wasn't perfect. Now I'm wondering if
what you're proposing isn't somehow mathematically related to that.

Cheers,

Aaron Krister Johnson
Music, etc.:
https://soundcloud.com/aaron-krister-johnson
https://soundcloud.com/filtercreed
https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg
https://aaronkristerjohnson.bandcamp.com/
http://www.untwelve.org
Code:
https://github.com/akjmicro <http://www.untwelve.org>


On Mon, Nov 18, 2024 at 2:02 PM Julius Smith <julius.sm...@gmail.com> wrote:

> Hi Aaron,
>
> This is a well known phenomenon.  It happens when the period is almost an
> exact integer.
> I see that fb_comb is defined as
>
> fb_comb(maxdel,N,b0,aN) = (+ <: de.delay(maxdel,N-1),_) ~ *(-aN) : !,*(b0)
> : mem;
>
> You really should use at least
>
> fb_fcomb(maxdel,N,b0,aN) = (+ <: fdelay(maxdel,float(N)-1.0),_) ~ *(-aN) :
> !,*(b0):mem;
>
> which linearly interpolates the delay.  That will still "buzz" when SR/f0
> is an integer.
> To address that, try changing fdelay to fdelay4:
>
> fb_f4comb(maxdel,N,b0,aN) = (+ <: de.fdelay4(maxdel,N-1),_) ~ *(-aN) :
> !,*(b0) : mem;
>
> and if that sounds good, you can try fdelay3 or fdelay2 to reduce
> computation.
>
> Cheers,
> Julius
>
> On Mon, Nov 18, 2024 at 10:29 AM Aaron Krister Johnson <akjmi...@gmail.com>
> wrote:
>
>> Sorry for the fat-fingers in the original post; wrote quickly on my tiny
>> phone keyboard...
>>
>> On Mon, Nov 18, 2024, 11:24 Aaron Krister Johnson <akjmi...@gmail.com>
>> wrote:
>>
>>> Hi all,
>>>
>>> Perhaps Julius O. Smith or some expert in filter resonance knows the
>>> answer:
>>>
>>> I have an app I built using the Karplus-Strong example in one of the
>>> "getting started" tutorial. It uses fi.fb_fcomb at its heart -- a comb
>>> filter excited by a burst of noise, then allowed to resonate and decay like
>>> a string.
>>>
>>> It is an _awesome_ sounding "superclav" as I call it; I have been
>>> playing Bach on it, it is expressive and its character is super-perfect for
>>> Baroque music.
>>>
>>> My issue is: I have set up a well-twmpered 12-note gamut using a
>>> waveform table, it works really well. But for some reason, at SR=48000,
>>> every C-sharp in my gamut, regardless of octave played, has an extra bit of
>>> bright "ping" that makes it stand out from the others. I suspect that
>>> particular pitch somehow reinforces,  in the combo filter, some resonance
>>> mode and its harmonics.
>>>
>>> Does anyone have any ideas on how to mitigate and work around this? I
>>> have tried post-EQing the signal, but it's tough to do it for each
>>> harmonic, and it ends up doing the reverse: making each C-sharp, if the
>>> band-reject EQ resonance is narrow enough, sound too "pinched".
>>>
>>> Perhaps I need to shift my overall gamut by some constant so that no
>>> pitch hits the resonance peak? That's not ideal, though, so I am wondering
>>> if perhaps it's possible to mitigate this by pre-filyering the noise burst
>>> or similar, in such a way that the peak gets reduced on the excitation-end
>>> of things.
>>>
>>> Any/all ideas here are appreciated, and thanks again to the wonderful
>>> devs for giving us this powerful tool.
>>>
>>> -Aaron
>>>
>>> _______________________________________________
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>
>
> --
> For language models, Wittgenstein is right: "The limit of language is the
> limit of the world"
>
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to