Installed in oscillators.lib Let me know if there should be any further changes. Thanks, - Julius
On Sun, Jun 23, 2019 at 10:28 AM Dario Sanfilippo <sanfilippo.da...@gmail.com> wrote: > > Nice one, Oleg. Yes, 1 and 0 should be the correct initial samples. Thanks > for this. :) > > D > > On Sun, 23 Jun 2019 at 18:56, Oleg Nesterov <o...@redhat.com> wrote: >> >> On 06/15, Dario Sanfilippo wrote: >> > >> > quad_osc(f) = tick ~ (_ , _) >> > with { >> > init = 1-1'; >> > w = 2*ma.PI*f/ma.SR; >> > k1 = tan(.5*w); >> > k2 = 2*k1/(1+k1*k1); >> > tick(u, v) = omega-k1*(v+k2*omega) , v+k2*omega >> > with { >> > omega = (u+init)-k1*v; >> > }; >> > }; >> >> another case when we need to initialize the delay line ;) >> >> Dario, it is not that I suggest to change this code, please ignore, >> but just for record... note that in this case we can avoid this hack >> and write >> >> quadosc(f) = tick ~ (_,_) : +(1),_ with { >> k1 = tan(f * ma.PI/ma.SR); >> k2 = 2*k1 / (1 + k1 * k1); >> >> tick(u_0,v_0) = u_1,v_1 with { >> tmp = u_0 - k1 * v_0; >> v_1 = v_0 + k2 * (tmp + 1); >> u_1 = tmp - k1 * v_1; >> }; >> }; >> >> This generates a slightly better code. And, this allows to add (mem,mem) >> >> quadosc(f) = tick ~ (_,_) : mem+1,mem with { >> k1 = tan(f * ma.PI/ma.SR); >> k2 = 2*k1 / (1 + k1 * k1); >> >> tick(u_0,v_0) = u_1,v_1 with { >> tmp = u_0 - k1 * v_0; >> v_1 = v_0 + k2 * (tmp + 1); >> u_1 = tmp - k1 * v_1; >> }; >> }; >> >> to ensure that it always ouputs (1,0) at the very first tick. Not that I >> think this is very important, but this matches other oscillators and looks >> more clean imo. >> >> Oleg. >> > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users -- Julius O. Smith III <j...@ccrma.stanford.edu> Professor of Music and, by courtesy, Electrical Engineering CCRMA, Stanford University http://ccrma.stanford.edu/~jos/ _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users