The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]).

In the Max tutorial on abstractions, you can find a classic example of why the bucket object is so useful - this Max tutorial demonstrates its use as a single sample delay for number values useful for constructing drawing commands.

Lots of people use the bucket object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms "first and second derivative" are math-speak for keeping track of:

the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.

the rate of the rate that things are changing - that's what acceleration (the second derivative) is.

Here's a patch that does that:

-- Pasted Max Patch, click to expand. --

Copy all of the following text.Then, in Max, select New From Clipboard.

I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the mean object). Here's an example that calculates the average of the last 8 floating point input values:

-- Pasted Max Patch, click to expand. --

Copy all of the following text.Then, in Max, select New From Clipboard.

The bucket object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, bucket is so useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):

-- Pasted Max Patch, click to expand. --

Copy all of the following text.Then, in Max, select New From Clipboard.