Talking about averages I wonder if we have an object that sums (in a moving average fashion) a series of samples
cheers
Something like this? Almost completely untestsed. :D
On Tue, Dec 8, 2015 at 12:20 AM, Alexandre Torres Porres porres@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@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
cool guys, but i was asking for an average "sum" object :)
2015-12-08 9:19 GMT-02:00 Christof Ressi christof.ressi@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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
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@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@gmx.at
*An:* "Alexandre Torres Porres" porres@gmail.com *Cc:* "pd-list@lists.iem.at" pd-list@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@gmail.com *An:* "Christof Ressi" christof.ressi@gmx.at *Cc:* "Matt Barber" brbrofsvl@gmail.com, "pd-list@lists.iem.at" < pd-list@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@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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmx.at[christof.ressi@gmx.at]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com]>, "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[pd-list@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@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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis... Pd-list@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmx.at[christof.ressi@gmx.at]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com]>, " pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis... Pd-list@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[pd-list@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@gmx.at[christof.ressi@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@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmx.at[christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] _______________________________________________ Pd-list@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] Pd-list@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmail.com [porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] _______________________________________________ Pd-list@lists.iem.at[ Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] Pd-list@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
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@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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] 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@lists.iem.at[ Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] 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@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres porres@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@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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] 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@lists.iem.at[ Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] 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@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
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@gmail.com:
here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres porres@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@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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] 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@lists.iem.at[ Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] 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@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
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@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@gmail.com:
here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres porres@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@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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at [pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at [pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] 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@lists.iem.at[ Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] 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@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
*> Now, can you do that in pd?*
I don't think we can. It's be really easy to add a "clear" message method to [delwrite~] though.
I was just checking, [tapin~] in max has a "clear" message, so you could do it there.
[delay~] from max can also clear
our [cyclone/delay~], on the other hand, doesn't have this feature!
[z~] also does not clear it's buffer
so we're pretty much tied up.
I think [cyclone/delay~] should be fixed to proper clone the max object and allow this.
We should definitely have this in [delwrite~], please!!!!
I don't believe having that in [z~] is really that important, specially if we have it in the previous two options, but what the hell, why not, right?
cheers
2015-12-08 16:10 GMT-02:00 Alexandre Torres Porres porres@gmail.com:
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@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@gmail.com:
here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres porres@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@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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" < pd-list@lists.iem.at[pd-list@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@gmx.at[ christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]>, "pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" < pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[brbrofsvl@gmail.com]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" < pd-list@lists.iem.at[pd-list@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@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]] 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@lists.iem.at [Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] 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@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]]
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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[porres@gmail.com]>: here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres <porres@gmail.com[porres@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@gmail.com[porres@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@gmx.at[christof.ressi@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[pd-list@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@gmx.at[christof.ressi@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@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@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@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]][christof.ressi@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]][porres@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]][porres@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]][christof.ressi@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][brbrofsvl@gmail.com[brbrofsvl@gmail.com]][brbrofsvl@gmail.com[brbrofsvl@gmail.com][brbrofsvl@gmail.com[brbrofsvl@gmail.com]]]>, "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmx.at[christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@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@gmail.com[brbrofsvl@gmail.com][brbrofsvl@gmail.com[brbrofsvl@gmail.com]]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@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@gmail.com[porres@gmail.com][porres@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]][Pd-list@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] Pd-list@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
[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@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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at Cc: "pd-list@lists.iem.at" pd-list@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@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@gmail.com[ porres@gmail.com]>: here's a better patch
2015-12-08 15:44 GMT-02:00 Alexandre Torres Porres <porres@gmail.com[ porres@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@gmail.com[ porres@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@gmx.at[ christof.ressi@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@gmail.com[porres@gmail.com]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" <pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmx.at[ christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@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@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]][christof.ressi@gmx.at[ christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]]>
An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]][porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@lists.iem.at]]]" <pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][ pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]][porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]]> An: "Christof Ressi" <christof.ressi@gmx.at[christof.ressi@gmx.at][ christof.ressi@gmx.at[christof.ressi@gmx.at]][christof.ressi@gmx.at[ christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@gmx.at]]]> Cc: "Matt Barber" <brbrofsvl@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]][brbrofsvl@gmail.com[ brbrofsvl@gmail.com][brbrofsvl@gmail.com[brbrofsvl@gmail.com]]]>, " pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]][pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@lists.iem.at]]]" <pd-list@lists.iem.at[ pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]][ pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@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@gmx.at[ christof.ressi@gmx.at][christof.ressi@gmx.at[christof.ressi@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@gmail.com[brbrofsvl@gmail.com][ brbrofsvl@gmail.com[brbrofsvl@gmail.com]]> An: "Alexandre Torres Porres" <porres@gmail.com[porres@gmail.com][ porres@gmail.com[porres@gmail.com]]> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[ pd-list@lists.iem.at]]" <pd-list@lists.iem.at[pd-list@lists.iem.at][ pd-list@lists.iem.at[pd-list@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@gmail.com [porres@gmail.com][porres@gmail.com[porres@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@lists.iem.at[Pd-list@lists.iem.at][Pd-list@lists.iem.at[ Pd-list@lists.iem.at]][Pd-list@lists.iem.at[Pd-list@lists.iem.at][ Pd-list@lists.iem.at[Pd-list@lists.iem.at]]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at[ Pd-list@lists.iem.at][Pd-list@lists.iem.at[Pd-list@lists.iem.at]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] Pd-list@lists.iem.at[Pd-list@lists.iem.at[Pd-list@lists.iem.at][ Pd-list@lists.iem.at[Pd-list@lists.iem.at]]] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Yep, you're right.
To be clear to anyone else reading, the equation is y[n] = (y[n-1] + x[n] - x[n-k])/k . I have a mental block when it comes to the filter element objects and tend to do things the hard way at first. :)
On Tue, Dec 8, 2015 at 6:19 AM, Christof Ressi christof.ressi@gmx.at wrote:
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@gmail.com An: "Alexandre Torres Porres" porres@gmail.com Cc: "pd-list@lists.iem.at" pd-list@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@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@lists.iem.at[Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...] _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list%5Bhttp://lists.puredata.info/lis...]
Regarding linear moving average filters there's the [maverage~] object in iemlib, but personally I'm using my own abstraction (see attachment. I think I've even sent you this before...)
Gesendet: Dienstag, 08. Dezember 2015 um 06:20 Uhr Von: "Alexandre Torres Porres" porres@gmail.com An: Kein Empfänger Cc: "pd-list@lists.iem.at" pd-list@lists.iem.at Betreff: [PD] Moving Sum object?
Talking about averages I wonder if we have an object that sums (in a moving average fashion) a series of samples cheers_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list