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 <sanfilippo.da...@gmail.com>:

> 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
> <https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html> below
> seems to be more stable, although it may be computationally more expensive.
>
> Ciao,
> Dario
>
> declare name "nstest";
> import("stdfaust.lib");
> fb = hslider("feedback",0,-1,1,0.001);
> process(x,y) = x,y : (+ : ef.cubicnl_nodc(drive, offsetL)) ~ * (fb), (+ :
> ef.cubicnl(drive, offsetR)) ~ * (fb)
> //: fi.highpass(2, HPFfreq), fi.highpass(2,HPFfreq) with{
> : highpass(HPFfreq), highpass(HPFfreq) with{
> HPFfreq = hslider("HPF freq",50, 20,10000,0.01): si.smoo;
> drive = hslider("drive",0,0,1,0.001);
> offsetL = hslider("offsetL",0,-1,1,0.001);
> offsetR = hslider("offsetR",0,-1,1,0.001);
> } ;
> highpass(cf, in) = biquad(a0, a1, a2, b1, b2, in)
> with {
> q1 = .707;
> alpha = sin(w(cf)) / (2 * q1);
> norm = 1 + alpha;
> a0 = ((1 + cos(w(cf))) / 2) / norm;
> a1 = -1 * (1 + cos(w(cf))) / norm;
> a2 = ((1 + cos(w(cf))) / 2) / norm;
> b1 = cos(w(cf)) * -2 / norm;
> b2 = (1 - alpha) / norm;
> w(f) = 2 * ma.PI * f / ma.SR;
> biquad(a0, a1, a2, b1, b2, x) = fir : +
> ~ iir
> with {
> fir = a0 * x + a1 * x' + a2 * x'';
> iir(fb) = -b1 * fb - b2 * fb';
> };
> };
>
> On Fri, 18 Dec 2020 at 07:14, Alik Rustamoff <alikthen...@gmail.com>
> wrote:
>
>> 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 "nstest";
>>
>> import("stdfaust.lib");
>>
>>
>> fb = hslider("feedback",0,-1,1,0.001);
>>
>>
>> process(x,y) = x,y : (+ : ef.cubicnl_nodc(drive, offsetL)) ~ * (fb), (+ :
>> ef.cubicnl(drive, offsetR)) ~ * (fb)
>>
>> : fi.highpass(2, HPFfreq), fi.highpass(2,HPFfreq) with{
>>
>>
>> HPFfreq = hslider("HPF freq",50, 20,10000,0.01): si.smoo;
>>
>> drive = hslider("drive",0,0,1,0.001);
>>
>> offsetL = hslider("offsetL",0,-1,1,0.001);
>>
>> offsetR = hslider("offsetR",0,-1,1,0.001);
>>
>> } ;
>>
>>
>> _______________________________________________
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>
>
> --
> Dr Dario Sanfilippo
> http://dariosanfilippo.com
>
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to