Re: [Faudiostream-users] noise from fi.highpass

2020-12-22 Thread Julius Smith
Interesting test! Will have to drill down on this... On Tue, Dec 22, 2020 at 11:43 AM Oleg Nesterov wrote: > Julius, et al, > > sorry for delay, I was busy. > > And let me apologize in advance, most probably I won't be responsive > till next week. > > On 12/20, Julius Smith wrote: > > > > In

Re: [Faudiostream-users] noise from fi.highpass

2020-12-22 Thread Oleg Nesterov
Julius, et al, sorry for delay, I was busy. And let me apologize in advance, most probably I won't be responsive till next week. On 12/20, Julius Smith wrote: > > In filters.lib, I just now changed (in faustlibraries / master) > smax = 0.; > to > smax = 1.0-ma.EPSILON; OK, I ran the

Re: [Faudiostream-users] noise from fi.highpass

2020-12-22 Thread Dario Sanfilippo
I'm sorry for the noise, but the tests below are wrong. I had to change the SR limits to do some oversampling but then some code was not compiling. So I changed it back and it looks like faust2csvplot is only working at 44.1KHz now, which is probably why the filters went unstable at CFs below what

Re: [Faudiostream-users] noise from fi.highpass

2020-12-21 Thread Stéphane Letz
> > Following this idea, would it be good to have guards in tables and delays to > avoid seg_fault 11 when indexes are weird values such as NAN? INF doesn't > seem to be a problem for delay values in delay lines. For example: > > import("stdfaust.lib"); > process = de.fdelay(16, del,

Re: [Faudiostream-users] noise from fi.highpass

2020-12-21 Thread Dario Sanfilippo
Hi, Julius. Yes, I was a bit surprised to see NANs in the last case because I've read a lot about how zero-delay feedback filters perform well for the entire spectrum, but I guess it must only to true for first-order filters. I'll do more testing later. Ciao, Dario On Mon, 21 Dec 2020 at 04:47,

Re: [Faudiostream-users] noise from fi.highpass

2020-12-21 Thread Dario Sanfilippo
On Mon, 21 Dec 2020 at 11:55, Stéphane Letz wrote: > Very interesting discussion ! (even if I do now follow all the details for > now): > > - about the « singleprecision/doubleprecision/quadprecision » recent > addition in the language, and about the use of ma.EPSILON (that is indeed > defined

Re: [Faudiostream-users] noise from fi.highpass

2020-12-21 Thread Stéphane Letz
Very interesting discussion ! (even if I do now follow all the details for now): - about the « singleprecision/doubleprecision/quadprecision » recent addition in the language, and about the use of ma.EPSILON (that is indeed defined using singleprecision/doubleprecision/quadprecision model).

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Julius Smith
Hi Dario, Those numbers look good except for the NaNs in the last case. - Julius On Sun, Dec 20, 2020 at 7:12 PM Dario Sanfilippo wrote: > Hi, Julius and Oleg. > > >> The question remains as to which filter form is more accurate. >> >> Another thing worth mentioning, by the way, is that

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Julius Smith
Thanks for the detective work! I like the idea of setting the pole protection margin according to the working precision. The boldest choice would be 1.0 - machineEpsilon. I think it was Stéphane who gave us ma.EPSILON to use in this kind of situation (it arose fairly recently for fi.tau2pole's

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Dario Sanfilippo
> > looks like tf2np() limits the reflection-coefficients too much... > The patch below seems to make the things better. > > Forgot to mention, I ran these tests with -double. > > Oleg. > > > diff --git a/filters.lib b/filters.lib > index 5b276e3..b530a52 100644 > --- a/filters.lib > +++

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Oleg Nesterov
On 12/20, Dario Sanfilippo wrote: > > > --- a/filters.lib > > +++ b/filters.lib > > @@ -1004,7 +1004,7 @@ declare tf2np copyright "Copyright (C) 2003-2019 by > > Julius O. Smith III > declare tf2np license "MIT-style STK-4.3 license"; > > tf2np(b0,b1,b2,a1,a2) = allpassnnlt(M,sv) :

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Oleg Nesterov
On 12/20, Oleg Nesterov wrote: > > On 12/19, Julius Smith wrote: > > > > All we can conclude from this test is that tf2s and svf are closer to each > > other than either is to tf2snp. > > Julius, I can't believe it but it seems that tf2snp is just wrong > when cf is low ;) > > test1: > > F =

Re: [Faudiostream-users] noise from fi.highpass

2020-12-20 Thread Oleg Nesterov
On 12/19, Julius Smith wrote: > > All we can conclude from this test is that tf2s and svf are closer to each > other than either is to tf2snp. Julius, I can't believe it but it seems that tf2snp is just wrong when cf is low ;) test1: F = 20; w1 = 2*ma.PI*F; a1s =

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Stéphane Letz
In the C++ backend tan funciton is compiled in the polymorphic std::tan that actually uses the tanf (float) or tan (double) or tanl (quad): https://en.cppreference.com/w/cpp/numeric/math/tan Same for the C backend, so I guess this is correct? Stéphane > Le 20 déc. 2020 à 00:05, Julius Smith

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Julius Smith
Yes, tf2snp takes the same coefficients as tf2s and simply uses a normalized ladder in place of direct form. Building on Oleg's test: import("stdfaust.lib"); F = 20; w1 = 2*ma.PI*F; a1s = -2.0*cos((ma.PI)*-1.0 + ma.PI/4.0); // c1 = no.noise <: fi.highpass(2, F) - fi.svf.hp(F, 1/sqrt(2)) : abs <:

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Oleg Nesterov
On 12/19, Dario Sanfilippo wrote: > > I was following this text: > http://www.willpirkle.com/Downloads/AN-4VirtualAnalogFilters.pdf. Thanks! I will read it later... may be ;) > Julius, would you have a function to calculate the coefficients for > fi.tf2snp? Julius will correct me, but I think

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Dario Sanfilippo
Hi, Oleg. On Sat, 19 Dec 2020 at 18:58, Oleg Nesterov wrote: > On 12/19, Dario Sanfilippo wrote: > > > > > And this probably means that Dario was right, and the problem was > caused > > > by quantisation. > > > > > > Because IIUC in theory (and unless you modulate HPFfreq) these 3 > filters > >

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Stéphane Letz
> Le 19 déc. 2020 à 18:58, Oleg Nesterov a écrit : > > On 12/19, Dario Sanfilippo wrote: >> >>> And this probably means that Dario was right, and the problem was caused >>> by quantisation. >>> >>> Because IIUC in theory (and unless you modulate HPFfreq) these 3 filters >>> >>>

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Oleg Nesterov
On 12/19, Dario Sanfilippo wrote: > > > And this probably means that Dario was right, and the problem was caused > > by quantisation. > > > > Because IIUC in theory (and unless you modulate HPFfreq) these 3 filters > > > > fi.highpass(2, f) > > fi.svf.hp(f, 1/sqrt(2)) > >

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Dario Sanfilippo
Hi, Oleg. :-) On Fri, 18 Dec 2020 at 19:10, Oleg Nesterov wrote: > Hi Dario, > > this motivated me to look at your library again ;) > I hope you found a couple of good things, and please do let me know if you see anything that can be improved or fixed. > > On 12/18, Alik Rustamoff wrote: > >

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Oleg Nesterov
On 12/19, Alik Rustamoff wrote: > > Today I tested all three. With last two svf filters I don't see any > difference (I use ardour's built in plugin analyser), no noise. > The noisy fi.highpass (the first one) becomes closer to them as cutoff > freq goes higher, but still has different phase

Re: [Faudiostream-users] noise from fi.highpass

2020-12-19 Thread Julius Smith
> That definitely sounds like "numerical stress" when the cutoff frequency goes very low. To be more clear, the numerical stress occurs in direct form when the poles get too close together, especially near the unit circle in the z plane. On Sat, Dec 19, 2020 at 1:13 AM Julius Smith wrote: >

Re: [Faudiostream-users] noise from fi.highpass

2020-12-18 Thread Alik Rustamoff
Today I tested all three. With last two svf filters I don't see any difference (I use ardour's built in plugin analyser), no noise. The noisy fi.highpass (the first one) becomes closer to them as cutoff freq goes higher, but still has different phase characteristics in lowest part of it's

Re: [Faudiostream-users] noise from fi.highpass

2020-12-18 Thread Oleg Nesterov
Hi Dario, this motivated me to look at your library again ;) On 12/18, Alik Rustamoff wrote: > > Hi, Dario, I, btw, ended up using blti filter from your edge of chaos > library. Good collection. No noises just does the job. Then I think that fi.svf.hp() should work equally well. Can you try it?

Re: [Faudiostream-users] noise from fi.highpass

2020-12-18 Thread Alik Rustamoff
Hi, Dario, I, btw, ended up using blti filter from your edge of chaos library. Good collection. No noises just does the job. About precision, I use default settings by running faust2lv2 script (I guess that runs with single precision) пт, 18 дек. 2020 г., 14:26 Dario Sanfilippo : > Hi, Alik. >

Re: [Faudiostream-users] noise from fi.highpass

2020-12-18 Thread Dario Sanfilippo
Hi, Alik. Other people will be able to give you a more exhaustive answer but it might be caused by quantisation of the coefficients making the filter a bit unstable. Are you working in double precision? Even in single precision, the biquad filter

[Faudiostream-users] noise from fi.highpass

2020-12-17 Thread Alik Rustamoff
Hi, when I use fi.highpass in the following example I get weird noise at the output if when offset parameters are not 0 and fighpass frequency is less than 70hz. Removing the highpass filter of raising cutoff freq removes the noise. Should it be like that? what is the reason? declare name