[PD] Moving Sum object?

Matt Barber brbrofsvl at gmail.com
Tue Dec 8 19:48:25 CET 2015


[partconv~] ought to do this as well, but with some discontinuity or
dropout on repartition, depending on the kernel size. I agree there ought
to be a clear method for [delwrite~].



On Tue, Dec 8, 2015 at 1:24 PM, Christof Ressi <christof.ressi at gmx.at>
wrote:

> >> we have to clean the delay buffers somehow
> >> Now, can you do that in pd?
>
> That's a good question!
>
> What you could do is to build a custom delay line with tables and then sum
> them as you need.
>
> In meantime: Here's a classic FIR solution for a moving average filter
> (the maximum size is hard coded to 256, but you can change this). Here you
> can set the number of samples dynamically with clearly less distortion.
> Note though, that this kind of filter becomes more and more computationally
> expensive for large numbers of samples (anything above 256), because FIR~
> (from iemlib) performs time domain convolution.
>
> The recursive version with [z~] and [rpole~] is certainly the cheapest and
> fastest of all, but there's nothing like a free meal :-).
>
> Cheers
>
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 19:10 Uhr
> Von: "Alexandre Torres Porres" <porres at gmail.com>
> An: "Christof Ressi" <christof.ressi at gmx.at>
> Cc: "pd-list at lists.iem.at" <pd-list at lists.iem.at>
> Betreff: Re: Re: Re: Re: [PD] Moving Sum object?
>
> > I'm not sure why the other patches don't work but this does.
>
> I got it, you'd need to clear the other delay buffers as well, not the
> feedback only!
>
> so we can do this with fexpr~ for up half the block size, we could expand
> this limit with delay lines, but if we want to do it with delay lines, we
> have to clean the delay buffers somehow
>
> Now, can you do that in pd?
>
> 2015-12-08 15:54 GMT-02:00 Alexandre Torres Porres <porres at gmail.com>:
> I just wish we could make it work over the half block limit, and I'm not
> sure why the other patches don't work but this does.
>
>
> 2015-12-08 15:53 GMT-02:00 Alexandre Torres Porres <porres at gmail.com[
> porres at gmail.com]>:
> here's a better patch
>
>
> 2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres <porres at gmail.com[
> porres at gmail.com]>:
>
> I've made it work with this design in fexpr, but it's only good up to half
> the block size
>
>
>
> 2015-12-08 15:21 GMT-02:00 Alexandre Torres Porres <porres at gmail.com[
> porres at gmail.com]>:
> As I say in the attached patch; problem is that whenever you change the
> number of samples without clearing or clearing the filter, it goes crazy...
>
> not sure how to fix this.
>
> cheers
>
>
>
> 2015-12-08 10:40 GMT-02:00 Christof Ressi <christof.ressi at gmx.at[
> christof.ressi at gmx.at]>:the filter is working perfectly well for me. send
> me your testing patch.
>
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 13:36 Uhr
> Von: "Alexandre Torres Porres" <porres at gmail.com[porres at gmail.com]>
> An: "Christof Ressi" <christof.ressi at gmx.at[christof.ressi at gmx.at]>
> Cc: "pd-list at lists.iem.at[pd-list at lists.iem.at]" <pd-list at lists.iem.at[
> pd-list at lists.iem.at]>
> Betreff: Re: Re: Re: [PD] Moving Sum object?
>
> not sure this is working either, I'm getting negative values when testing
> it with count~ (only positive values)
>
> 2015-12-08 10:30 GMT-02:00 Christof Ressi <christof.ressi at gmx.at[
> christof.ressi at gmx.at]>:It certainly is and I have no idea how that
> happened :-D. but it has no effect whatsoever. just delete the connection.
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 13:20 Uhr
> Von: "Alexandre Torres Porres" <porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]]>
> An: "Christof Ressi" <christof.ressi at gmx.at[christof.ressi at gmx.at][
> christof.ressi at gmx.at[christof.ressi at gmx.at]]>
> Cc: "pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]]" <pd-list at lists.iem.at[pd-list at lists.iem.at][
> pd-list at lists.iem.at[pd-list at lists.iem.at]]>
> Betreff: Re: Re: [PD] Moving Sum object?
>
> what was the purpose of the output from the max object into rpole~ in your
> patch? that's a bug, right?
>
> cheers
>
> 2015-12-08 9:50 GMT-02:00 Christof Ressi <christof.ressi at gmx.at[
> christof.ressi at gmx.at][christof.ressi at gmx.at[christof.ressi at gmx.at]]>:
>
> Or are you talking about a object that outputs the sum as a message? In
> that case just use [cmavg~] or [maverage~] with [snapshot~]. If you just
> want the sum of a signal vector, there are some objects in zexy that will
> do the job, like [avg~] or [pack~]+[sum]
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 12:41 Uhr
> Von: "Christof Ressi" <christof.ressi at gmx.at[christof.ressi at gmx.at][
> christof.ressi at gmx.at[christof.ressi at gmx.at]][christof.ressi at gmx.at[
> christof.ressi at gmx.at][christof.ressi at gmx.at[christof.ressi at gmx.at]]]>
>
> An: "Alexandre Torres Porres" <porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]][porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]]]>
> Cc: "pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]][pd-list at lists.iem.at[pd-list at lists.iem.at][
> pd-list at lists.iem.at[pd-list at lists.iem.at]]]" <pd-list at lists.iem.at[
> pd-list at lists.iem.at][pd-list at lists.iem.at[pd-list at lists.iem.at]][
> pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]]]>
> Betreff: Re: [PD] Moving Sum object?
>
> Well, a linear moving average filter is just something that  sums a series
> of samples. If you don't want the average but rather the true sum, either
> multiply the output by the number of samples or take my abstraction and get
> rid of the [/~] object.
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 12:21 Uhr
> Von: "Alexandre Torres Porres" <porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]][porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]]]>
> An: "Christof Ressi" <christof.ressi at gmx.at[christof.ressi at gmx.at][
> christof.ressi at gmx.at[christof.ressi at gmx.at]][christof.ressi at gmx.at[
> christof.ressi at gmx.at][christof.ressi at gmx.at[christof.ressi at gmx.at]]]>
> Cc: "Matt Barber" <brbrofsvl at gmail.com[brbrofsvl at gmail.com][
> brbrofsvl at gmail.com[brbrofsvl at gmail.com]][brbrofsvl at gmail.com[
> brbrofsvl at gmail.com][brbrofsvl at gmail.com[brbrofsvl at gmail.com]]]>, "
> pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]][pd-list at lists.iem.at[pd-list at lists.iem.at][
> pd-list at lists.iem.at[pd-list at lists.iem.at]]]" <pd-list at lists.iem.at[
> pd-list at lists.iem.at][pd-list at lists.iem.at[pd-list at lists.iem.at]][
> pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]]]>
> Betreff: Re: Re: [PD] Moving Sum object?
>
> cool guys, but i was asking for an average "sum" object :)
>
> 2015-12-08 9:19 GMT-02:00 Christof Ressi <christof.ressi at gmx.at[
> christof.ressi at gmx.at][christof.ressi at gmx.at[christof.ressi at gmx.at]]>:Hey
> Matt,
>
> there's no need for the feedback path (and therefore no [block~ 1] ;-))
>
> Just use the following formula:
>
> y[n] = (y[n-1] - x[n-k])/k
>
> where k is the number of samples to be averaged (must be at least 1). see
> the patch I sent to Alex in my last mail.
> it uses [rpole~ 1] for the y[n-1] part and [z~ k] for the x[n-k] part (you
> can replace the latter one with a [delwrite~] [delread~] pair to make it
> purely vanilla).
>
> The funny thing about linear moving average filters is, that although it
> can be implemented as a recursive filter (like in both our patches), it is
> still a FIR filter (and therefore it defeats the notion that recursive
> filters are always IIR filters). The impulse response is just a rectangular
> pulse and therefore finite.
>
>
>
> Gesendet: Dienstag, 08. Dezember 2015 um 07:13 Uhr
> Von: "Matt Barber" <brbrofsvl at gmail.com[brbrofsvl at gmail.com][
> brbrofsvl at gmail.com[brbrofsvl at gmail.com]]>
> An: "Alexandre Torres Porres" <porres at gmail.com[porres at gmail.com][
> porres at gmail.com[porres at gmail.com]]>
> Cc: "pd-list at lists.iem.at[pd-list at lists.iem.at][pd-list at lists.iem.at[
> pd-list at lists.iem.at]]" <pd-list at lists.iem.at[pd-list at lists.iem.at][
> pd-list at lists.iem.at[pd-list at lists.iem.at]]>
> Betreff: Re: [PD] Moving Sum object?
>
> Something like this? Almost completely untestsed. :D
>
> On Tue, Dec 8, 2015 at 12:20 AM, Alexandre Torres Porres <porres at gmail.com
> [porres at gmail.com][porres at gmail.com[porres at gmail.com]]> wrote:
>
> Talking about averages I wonder if we have an object that sums (in a
> moving average fashion) a series of samples
>
> cheers
> _______________________________________________
> Pd-list at lists.iem.at[Pd-list at lists.iem.at][Pd-list at lists.iem.at[
> Pd-list at lists.iem.at]][Pd-list at lists.iem.at[Pd-list at lists.iem.at][
> Pd-list at lists.iem.at[Pd-list at lists.iem.at]]] mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D][http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D]][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5D%5D]
>  _______________________________________________ Pd-list at lists.iem.at[
> Pd-list at lists.iem.at][Pd-list at lists.iem.at[Pd-list at lists.iem.at]] mailing
> list UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D]_______________________________________________[http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D]_______________________________________________][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5D_______________________________________________%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5D_______________________________________________%5D]
> Pd-list at lists.iem.at[Pd-list at lists.iem.at[Pd-list at lists.iem.at][
> Pd-list at lists.iem.at[Pd-list at lists.iem.at]]] mailing list UNSUBSCRIBE and
> account-management ->
> http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list][http://lists.puredata.info/listinfo/pd-list[http://lists.puredata.info/listinfo/pd-list]][http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5Bhttp://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/listinfo/pd-list%5D%5D]
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20151208/4a5f3dff/attachment-0001.html>


More information about the Pd-list mailing list