|
From: Oleg N. <ol...@re...> - 2019-06-23 15:30:18
|
On 06/22, Julius Smith wrote:
>
> Maybe clearer now? See latest filter.lib.
Thanks, the new doc matches my understanding ;)
> I presently vote against a scaling by 2, but I am open to arguments.
> Right now, pospass simply passes only positive frequencies, and
> hilbert is the imaginary part of pospass. To me this is the simplest
> view.
Agreed, but I was talking about fi.hilbert. Ideally it should turn cos()
into sin(), at least according to its name/documentation, not into sin/2.
> None of these filters is ideal. By considering lowpass, pospass,
> hilbert, etc., in Faust, you are considering practical filters,
> nothing ideal.
Of course. But as for fi.hilbert, I simply can't imagine any practical
usage of it...
And in fact there was another reason why I was confused. I interpreted
your email as if the new fi.ssbf is always "better" than
hilbert = _ <: H(a1)', H(a2) with {
a1 = 0.6923878, 0.9360654322959, 0.9882295226860 , 0.9987488452737;
a2 = 0.4021921162426, 0.8561710882420, 0.9722909545651, 0.9952884791278;
H_sect(a) = f ~ _ with { f(y, x) = a^2 * (x + y') - x''; };
H(as) = seq(i, outputs(as), H_sect(ba.take(i+1, as)));
};
I showed to Dario, at least for frequency shifting. AFAICS, this is not
necessarily true, this depends. Consider the naive implementations,
freq_shift_yehar(f) = hilbert : *(os.oscrc(f)) - *(os.oscrs(f));
and
freq_shift_ssbf(f) = fi.ssbf(8) : *(os.oscrc(f)) - *(os.oscrs(f));
iiuc the first one will work "better" unless the input frequency is "close"
to SR/4.
Right?
Oleg.
|