Nice - pushed - Julius
At 05:19 AM 1/19/2015, Jonatan Liljedahl wrote:
Thanks!
Actually, amp_follower_ar can be better written:
amp_follower_ar(att,rel) = abs : lag_ud(att,rel);
On Mon, Jan 19, 2015 at 9:44 AM, Julius Smith
<<mailto:j...@ccrma.stanford.edu>j...@ccrma.stanford.edu> wrote:
Thanks for your useful and crisply written
utilities! I have added them to effect.lib
after the preexisting envelope followers. - Julius
On Sun, Jan 18, 2015 at 1:18 PM, Jonatan
Liljedahl <<mailto:li...@kymatica.com>li...@kymatica.com> wrote:
Oh, here's a version that actually works, and without the one sample delay:
amp_follower_ar(att,rel) = abs <: ((>,at,rt:select2),_:smooth) ~ _Â with {
  at = tau2pole(att);
  rt = tau2pole(rel);
};
And simplified, a bit more generic:
/*****************************************************
  lag_ud(up, dn, signal);
  Lag filter with separate times for up and down.
*****************************************************/
lag_ud(up,dn) = _ <: ((>,tau2pole(up),tau2pole(dn):select2),_:smooth) ~ _;
/Jonatan
On Sun, Jan 18, 2015 at 4:08 PM, Jonatan
Liljedahl <<mailto:li...@kymatica.com>li...@kymatica.com> wrote:
> Hi!
>
> Here's my take on an envelope follower with truly separate attack and
> release times. The release can be shorter than the attack, which is
> not possible with amp_follower_ud from effect.lib
>
> However, it has a built-in delay of one sample. I had to add that
> since the detected state (going up or down) is already delayed, and we
> can't allow any samples into the env filter that doesn't belong to the
> new state (not sure if I'm making myself clear here..)
>
> Any ideas for improvements?
>
> /*****************************************************
>Â Â Â amp_follower_ar(attack, release, signal);
>
>Â Â Â Like amp_follower_ud, but allows release times that are shorter
> than attack time.
>Â Â Â Has a delay of one sample.
> *****************************************************/
>
> amp_follower_ar(att,rel) = abs <: ((_,_,_ <:
> ((_,at,rt:select2),mem:env),_ <: >,_,!) ~ _) : !,_ with {
>Â Â Â env(p,x) = x * (1.0 - p) : + ~ max(x,_) * p;
>Â Â Â at = tau2pole(att);
>Â Â Â rt = tau2pole(rel);
> };
>
>
> --
> /Jonatan
> <http://kymatica.com>http://kymatica.com
--
/Jonatan
<http://kymatica.com>http://kymatica.com
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
<http://p.sf.net/sfu/gigenet>http://p.sf.net/sfu/gigenet
_______________________________________________
Faudiostream-devel mailing list
<mailto:Faudiostream-devel@lists.sourceforge.net>Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel
--
"Anybody who knows all about nothing knows everything" -- Leonard Susskind
--
/Jonatan
<http://kymatica.com>http://kymatica.com
Julius O. Smith III <j...@ccrma.stanford.edu>
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Faudiostream-devel mailing list
Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel